基于eclipse搭建jdk1.8.0_40源码编译环境

1.先决条件

1.下载jdk1.8.0_40免安装包

可通过如下地址下载:链接:https://pan.baidu.com/s/1wHtN0MO7fop848t5yEY3fQ 提取码:hayk 

2.解压并配置Java环境

解压到指定路径下后,需要配置Java环境变量,右键计算机->属性->高级系统设置->高级->环境变量,如下图所示:

系统变量->新建 JAVA_HOME 变量 。变量值填写jdk的解压的位置(本人是 D:\software\Java\JDK1.8.0_40)。

系统变量->Path 变量->编辑在变量值最后添加如下内容:

;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

结果如下图所示:

备注:注意若原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码。

系统变量->新建 CLASSPATH变量,变量值填写 如下内容:

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

结果如下图所示:

备注:注意最前面有一个点(.)

至此,Jav环境变量配置完毕!

检验是否配置成功,点击“开始”菜单->运行->cmd,启动命令行(或win+R),输入 java -version (java 和 -version 之间有空格),正确输出结果如下图所示:

若如上图所示 显示版本信息 则说明安装和配置成功。

3.安装配置eclipse Java开发环境

首先我们需要进行下载eclipse软件,下载地址:https://www.eclipse.org/downloads/

下载页面如下图所示:

 点击上图所示的Download Packages,进入页面之后,点击下载Eclipse IDE for Java Developers版本,然后根据自己电脑的位数来选择下载64位或32位的,如下图所示:

 我电脑是64位的,所以我就点击64 bit,进入下载页面之后直接点击Download即可。如下图所示:

 下载完成之后,解压,解压之后,双击运行eclipse.exe文件,如下图所示:

 双击eclipse.exe文件,如下图,它首先会让我们设置工作空间,工作空间的意思就是一会建立Java工程的时候,所要保存的路径,即我们建立的Java工程文件都会保存在你设置的工作空间里面,它默认的工作空间可能是C盘的用户工作目录下,我们这里可以把它给改修改为我们方便的位置,如下图所示:

备注:.\ 表示当前路径下(即eclipse.exe文件所在路径)。

 Eclipse软件打开之后,会出现一个欢迎界面,我们可以把它给关掉,如下图所示:

关掉欢迎界面之后就是我们的主界面了,如下图所示:

至此,Eclipse Java开发环境搭建完成!

首先来编写一个最简单的Java HelloWorld程序,输出“Hello world”测试环境是否正常!
首先我们要建立一个Java工程,点击主界面左上角的File->New->Java Project,如下图所示:

输入工程名称:HelloWorld,点击“Configure JREs..”设置我们的JAVA_HOME路径下的jre文件夹,点击Finish,如下图所示:

至此,Java工程就建立好了,我们可以看到主界面左侧已经有HelloWorld工程,如下图所示:

Java工程建立好之后,此时工程里面啥都没有,我们还需要再建立一个Java类(class),在src上右键->new->class,输入类名:HelloWorld,勾选public static void main(String[] args),点击Finish,如下图所示:

然后我们的Java类就建立好了,并且自动创建了public static void main(String[] args)函数,如下图所示:

然后我们就可以在main函数中编写代码了,代码如下图所示:

然后,保存程序(crtl+s),然后z在空白区域,右键->Run As,然后找到Run As->Java Application,就可以运行程序了,程序运行的结果会在Eclipse主界面的下方的Console的窗口打印"Hello World!",如下图所示:

至此,我们基于Eclipse Java开发环境搭建完成!

4.配置JDK源码编译环境配置

首先,先检查一下Eclipse的默认已安装的JRE配置,我本机的JDK和JRE是在D:\software\Java目录下,那么默认情况下Eclipse会引用JRE,如下图所示:

我们先将这个JRE Remove,然后添加JDK,JRE Home 选择JDK的解压目录,如下图所示:

 接下来我们新建一个普通的JAVA 项目,我这里命名为JavaSource,我们检查一下项目的JRE,如下图所示:

然后我们导入JDK源码即JAVA_HOME下的src.zip文件到src目录上右键->import->General->Archive File->选择JDK解压目录下的src.zip,如下图所示:

 5.编译错误处理

Eclipse导入JDK源码后,会自动进行编译。不出意外,编译一般出现问题,不要着急,我们先点开一个错误看一看,Access restriction ,访问限制,意思是这些API是限制访问的。简单来说,这些API是非常底层的,可以理解为核心,只有在编写JDK这样的程序的时候才会使用上,一般我们自己写的JAVA应用程序肯定是不会用到这么底层的API,如下图所示:

此时,我们需要修改一下Eclipse的设置,右键JavaSource项目->properities->Java Compiler->Errors/Warnings,然后我们选中Enable Project specific settings, 找到Deprecated and restricted API ->Forbidden reference (access rules) ,设置为Ignore,然后Apply,使设置生效,这时Eclipse会重新对项目进行编译。

编译完成后,你会发面错误一下子减少了许多。接下来再解决其它的问题,

首先解决如下错误:

The import com.sun.tools cannot be resolved

我们查看JRE,确实没找到这个包在哪里,其实这个包在jdk\lib\tools.jar中,引入这个包,重新编译,又减少一部分error。

接下来,就是UNIXToolkit和FontConfigManager文件找不到,所有的jar包都检查了,就是找不到这两个文件。既然jar包中没有,那我们就只好创建这两个文件了。其实这两个文件的源码是在OpenJDK中,我们可以在OpenJDK网站下载该文件内容并放入到指定包下。

源文件可以在OpenJDK网站下载,下载地址如下:

http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/a06412e13bf7/src/solaris/classes/sun/font

http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/a06412e13bf7/src/solaris/classes/sun/awt

在src目录上右键->new->class,输入类名:sun.awt.UNIXToolkit/,Eclipse会自动填充包名并创建包。将下载的文件内容copy到该类中,保存,重新编译,错误继续减少,一般如果你使用的是比较新的Eclipse(v4.3.0及以上版本),此时应该已经编译成功,对于比较低版本的Eclipse会存在如下一个错误:

The method flatten(Node<T>, IntFunction<T[]>) in the type Nodes is not applicable for the arguments (Node, IntFunction)

在编译时不能识别泛型参数,在网上查找了相关问题,最后发现这个是Eclipse的一个BUG,具体见下面这个链接:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=506664

不过现在比较新的Eclipse已经修复了该问题。

猜你喜欢

转载自blog.csdn.net/u011220960/article/details/87995547