跪求JDK源码!

maodie007 2008-07-02 10:26:49
找了很多地方没有找到,郁闷了。也在www.sun.com上面转悠了很久,没找到。我们下的JDK安装后能给我们一点
src.zip里面只是包含了一小部分源码,还有很多都没有。
我在网上找到了一个在线的源码chm网站
http://javaresearch.gro.clinux.org/jdk140/index.html
虽然还算可以,但是还是希望能找到独立的源代码包呀。
不知道那位达人自己有或者知道在那里能下到。
谢谢了。
我的邮箱是maodie007@163.com
...全文
518 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
myvs01 2010-05-29
  • 打赏
  • 举报
回复
你们到底有没有试过啊。src.zip中少jvm.h等头文件啊。
KennyLonng 2010-02-03
  • 打赏
  • 举报
回复
对,就在src.zip里
bloodrate 2008-07-02
  • 打赏
  • 举报
回复
想找完全得源码是不太容易,我想楼主想找得是jdk源码不是lib源码,也就是比如javac.c编译程序或者jvm的c源码,这个也是开源得,得到其他地方找,另外我下载得lib源码在看的过程中到了sun.msic这个包下得类追不到源码,我是这样理解的:java是开放标准得,像util这样得包是标准的java规范实现,大家都用,但是到了sun.msic就成了sun公司对于java规范得内部实现,也就是说不同公司得jdk相同点都共用了诸如java.util这样得包,不同点就在于类似sun.msic这个包下得东西不同。。。
Sou2012 2008-07-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bajinggong 的回复:]
一般应该在jdk文件夹下面,一个压缩文件。
我机器上的路径:C:\Program Files\Java\jdk1.6.0_03\src.zip
[/Quote]
yangxzh 2008-07-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wl520a 的回复:]
做梦嘛 SUN怎么可能给你那个 有那个就有钱了啊 不会那么容易找的
[/Quote]
不要乱说哦 java是开源的 源码就在src.zip里
  • 打赏
  • 举报
回复
包名以 com.sun 开头和 sun 开头的,即 JVM 底层包,源代码并未公开,

以 java 包开头的也不是在 src.zip 中是完全的,据我所知 JSSE 的部分代码就不在这里面。
瞎子学设计 2008-07-02
  • 打赏
  • 举报
回复
做梦嘛 SUN怎么可能给你那个 有那个就有钱了啊 不会那么容易找的
zongjianhui 2008-07-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 shili150 的回复:]
jdk 是开源的

本身有源码
[/Quote]
  • 打赏
  • 举报
回复
jdk 是开源的

本身有源码
cnoolon 2008-07-02
  • 打赏
  • 举报
回复
tomcat有j2ee源码,就是一些接口
bajinggong 2008-07-02
  • 打赏
  • 举报
回复
一般应该在jdk文件夹下面,一个压缩文件。
我机器上的路径:C:\Program Files\Java\jdk1.6.0_03\src.zip
ldy214 2008-07-02
  • 打赏
  • 举报
回复
给我也看不懂,zl是高手呀!
maxel 2008-07-02
  • 打赏
  • 举报
回复
人家能开的全开了,不想开的是不会开的……
havelock 2008-07-02
  • 打赏
  • 举报
回复
你想要的是J2EE的源码??

J2SE的基本都在src.zip里面了~
shili150 2008-07-02
  • 打赏
  • 举报
回复
C:\Program Files\Java\jdk1.6.0_03\src


我的路径
shili150 2008-07-02
  • 打赏
  • 举报
回复
jdk 是开源的

本身有源码
zhj92lxs 2008-07-02
  • 打赏
  • 举报
回复
src.zip这里面就是啊
craky 2008-07-02
  • 打赏
  • 举报
回复
你想干嘛~~~~~~~~~~~~~~~~~~
海诗美妆 2008-07-02
  • 打赏
  • 举报
回复
下载JDK
安装的时候选择安装源码。

如果是最新版的默认安装应该在这里
C:\Program Files\Java\jdk1.6.0_10\src.zip
最新版包括C语言

/*
* @(#)java.c 1.139 08/04/08
*
* Copyright 2006-2008 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/

/*
* Shared source for 'java' command line tool.
*
* If JAVA_ARGS is defined, then acts as a launcher for applications. For
* instance, the JDK command line tools such as javac and javadoc (see
* makefiles for more details) are built with this program. Any arguments
* prefixed with '-J' will be passed directly to the 'java' command.
*/

/*
* One job of the launcher is to remove command line options which the
* vm does not understand and will not process. These options include
* options which select which style of vm is run (e.g. -client and
* -server) as well as options which select the data model to use.
* Additionally, for tools which invoke an underlying vm "-J-foo"
* options are turned into "-foo" options to the vm. This option
* filtering is handled in a number of places in the launcher, some of
* it in machine-dependent code. In this file, the function
* CheckJVMType removes vm style options and TranslateApplicationArgs
* removes "-J" prefixes. On unix platforms, the
* CreateExecutionEnvironment function from the unix java_md.c file
* processes and removes -d<n> options. However, in case
* CreateExecutionEnvironment does not need to exec because
* LD_LIBRARY_PATH is set acceptably and the data model does not need
* to be changed, ParseArguments will screen out the redundant -d<n>
* options and prevent them from being passed to the vm; this is done
* by using the machine-dependent call
* RemovableMachineDependentOption.
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <jni.h>
#include <jvm.h>
#include "java.h"
#include "manifest_info.h"
#include "version_comp.h"
#include "wildcard.h"
#include "splashscreen.h"

#ifndef FULL_VERSION
#define FULL_VERSION JDK_MAJOR_VERSION "." JDK_MINOR_VERSION
#endif

/*
* The following environment variable is used to influence the behavior
* of the jre exec'd through the SelectVersion routine. The command line
* options which specify the version are not passed to the exec'd version,
* because that jre may be an older version which wouldn't recognize them.
* This environment variable is known to this (and later) version and serves
* to suppress the version selection code. This is not only for efficiency,
* but also for correctness, since any command line options have been
* removed which would cause any value found in the manifest to be used.
* This would be incorrect because the command line options are defined
* to take precedence.
*
* The value associated with this environment variable is the MainClass
* name from within the executable jar file (if any). This is strictly a
* performance enhancement to avoid re-reading the jar file manifest.
*
* A NOTE TO DEVELOPERS: For performance reasons it is important that
* the program image remain relatively small until after SelectVersion
* CreateExecutionEnvironment have finished their possibly recursive
* processing. Watch everything, but resist all temptations to use Java
* interfaces.
*/
#define ENV_ENTRY "_JAVA_VERSION_SET"

#define SPLASH_FILE_ENV_ENTRY "_JAVA_SPLASH_FILE"
#define SPLASH_JAR_ENV_ENTRY "_JAVA_SPLASH_JAR"

static jboolean printVersion = JNI_FALSE; /* print and exit */
static jboolean showVersion = JNI_FALSE; /* print but continue */
static char *progname;
jboolean _launcher_debug = JNI_FALSE;

/*
* Entries for splash screen environment variables.
* putenv is performed in SelectVersion. We need
* them in memory until UnsetEnv, so they are made static
* global instead of auto local.
*/
static char* splash_file_entry = NULL;
static char* splash_jar_entry = NULL;

/*
* List of VM options to be specified when the VM is created.
*/
static JavaVMOption *options;
static int numOptions, maxOptions;

/*
* Prototypes for functions internal to launcher.
*/
static void SetClassPath(const char *s);
static void SelectVersion(int argc, char **argv, char **main_class);
static jboolean ParseArguments(int *pargc, char ***pargv, char **pjarfile,
char **pclassname, int *pret, const char *jvmpath);
static jboolean InitializeJVM(JavaVM **pvm, JNIEnv **penv,
InvocationFunctions *ifn);
static jstring NewPlatformString(JNIEnv *env, char *s);
static jobjectArray NewPlatformStringArray(JNIEnv *env, char **strv, int strc);
static jclass LoadClass(JNIEnv *env, char *name);
static jstring GetMainClassName(JNIEnv *env, char *jarname);
static void SetJavaCommandLineProp(char* classname, char* jarfile, int argc, char** argv);
static void SetJavaLauncherProp(void);

#ifdef JAVA_ARGS
static void TranslateApplicationArgs(int *pargc, char ***pargv);
static jboolean AddApplicationOptions(void);
#endif

static void PrintJavaVersion(JNIEnv *env);
static void PrintUsage(void);
static jint PrintXUsage(const char *jvmpath);

static void SetPaths(int argc, char **argv);

/* Maximum supported entries from jvm.cfg. */
#define INIT_MAX_KNOWN_VMS 10
/* Values for vmdesc.flag */
#define VM_UNKNOWN -1
#define VM_KNOWN 0
#define VM_ALIASED_TO 1
#define VM_WARN 2
#define VM_ERROR 3
#define VM_IF_SERVER_CLASS 4
#define VM_IGNORE 5
struct vmdesc {
char *name;
int flag;
char *alias;
char *server_class;
};
static struct vmdesc *knownVMs = NULL;
static int knownVMsCount = 0;
static int knownVMsLimit = 0;

static void GrowKnownVMs();
static int KnownVMIndex(const char* name);
static void FreeKnownVMs();
static void ShowSplashScreen();

jboolean ServerClassMachine();

/* flag which if set suppresses error messages from the launcher */
static int noExitErrorMessage = 0;

/*
* Running Java code in primordial thread caused many problems. We will
* create a new thread to invoke JVM. See 6316197 for more information.
*/
static jlong threadStackSize = 0; /* stack size of the new thread */

int JNICALL JavaMain(void * args); /* entry point */

struct JavaMainArgs {
int argc;
char ** argv;
char * jarfile;
char * classname;
InvocationFunctions ifn;
};
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

62,630

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧