eclipse java自动编译_java环境变量及Eclipse自动编译问题

环境变量,是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

JAVA_HOME:它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。

变量名:JAVA_HOME

变量值:C:\Program Files\Java\jdk1.8.0_131

CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPATH来寻找类的。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。

变量名:CLASSPATH

变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

解释语:dt.jar是关于运行环境的类库,主要是swing的包在用到swing时最好加上

tools.jar工具类库(编译和运行等),它跟我们程序中用到的基础类库没有关系。我们注意到在Path中变量值bin目录下的各个exe工具的大小都很小,一般都在27KB左右,这是因为它们实际上仅仅相当于是一层代码的包装,这些工具的实现所要用到的类库都在tools.jar中,用压缩软件打开tools.jar,你会发现有很多文件是和bin目录下的exe工具相对性的,查看图一。当然,如果tools.jar的功能只有这些的话,那么我们根本不用把它加入到CLASSPATH变量中,因为bin目录下的工具自己可以完成对这些类库的调用,因此tools.jar应该还有其他的功能。在里面还可以看到有Applet和RMI等相关的文件,因此tools.jar应该还是远程调用等必须的jar包。tools.jar的其他作用可以查看其他资料。

PATH环境变量。作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。

变量名:Path

变量值:%JAVA_HOME%\bin

我们手动编写一个HelloWorld.java类,然后用javac进行编译得到HelloWorld.class

ae836a743a92b22fb374cdc11ad410ab.png

我们在Eclipse中新建一个同样的类然后保存(不点击执行按钮)。

992e5f47e161b2afc7d73803d2a9e6b0.png

保存之后我们到工作目录下查找会看到对应的bin目录下已经生成了对应的class文件

f38e50465046fca4d5de07a40ee6cbd6.png

为什么会在bin目录下生成class文件呢?

右键项目--》Build Path--》Configure BuildPath... 如下图所示,编译输出路径可以自己设置

6c0edf3f419505f5c350aab2c70d6b0e.png

默认情况下:普通工程:bin,web工程:WEB-INF/classes,maven工程:target/classes

我们把手动编译的和Eclipse为我们编译的进行一下对比

然后简单修改一下这个类,保存(仍不执行)

97bd9addd6128c6c874741648fdfad67.png

然后再到bin目录下观察class文件,发现时间已经被更新了

31c4310c5c361935b71e299c6bb86246.png

为什么我们只是保存了一下就生成了新的class文件?

c0bda9cb0fef3d2c346e5e451a7a99b4.png

如上图所示,我们选择了自动构建编译,那么在新建一个类或者对其进行修改的时候Eclipse便会自动为其进行编译。

如果我们把自动编译取消,在对这个类修改的时候。

7acd27b6415812f2c0d5c3f9ef8cb89d.png

会发现保存之后编译文件还是旧的,新加的代码没有被重新编译。

31c4310c5c361935b71e299c6bb86246.png

那么我们点击执行看看

f9d6c29a3d6218c1380afdd1fcb3b529.png

会发现执行之后Eclipse重新编译了java文件

a6394188e2d31c1bfd7aab411efc75c6.png

如果说我们没有修改Java文件里面的内容,再次执行的话会发现HelloWorld.class并没有更新(注意看时间),因为还是那个源文件,编译之后肯定还是一样的。

dcf282533c1d119559fc7665aa97956a.png

java文件没有改动的话Eclipse是不会重新编译的。

e912c4edc7a6630444a63c0392b1f1f1.png

但是!通过eclipse  --->project  ----->clean...

这个时候eclipse会将所有的以前编译信息清除然后编译。

选项将工程中的.class文件删除,同时重新编译工程。

84f56ef4b37a3e64eafe77d26526969b.png

d9bd6c5621be54c8d18759976a34599a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值