我是一个java菜鸟,刚刚开始认真的学java.前天安装了jdk1.5.0.一直到今天才算对java在jdk环境下编译运行有了比较深刻的体会.通过自己的上机,才明白了classpath和path环境变量的重要性和难度.
问题a:[编译]正确设置path环境变量.path用于指示搜索可执行文件的路径假设c:/program files/java/jdk1.5.0/bin是存储javac.exe的目录,那么可用命令set path=c:/program files/java/jdk1.5.0/bin;%path%来设置path环境变量.使用分号(;)分隔多个目录.
%path%是去原来path环境变量的值,是一种负责任的写法.把c:/program files/java/jdk1.5.0/bin添加到搜索路径的最前面.在设置好path环境变量后,可以进行执行编译程序的命令.javac[<编译选项>][<要编译的java源程序>][@<参数文件>]
<编译选项>包括很多选项,初学者掌握最常用的两个即可.—classpath 设置编译时要引用类文件的起始目录。—d设置生成文件的目的目录。要注意它与java程序中的package联合使用,如果没有—d选项,则生成的类文件与源文件在同一个目录
[<要编译的java源程序>]可以是一个源文件(扩展名为.java),也可以是多个源文件的列表。
问题b:正确设置classpath环境变量.classpath环境变量用于指示jre搜索要执行类文件的路径。
java[<选项>]<要运行类文件>.常用选项—classpath来说明要定位类文件的目录。
问题c:在引用包的情况下要千万小心。笔者在调试程序时曾经犯过一个错误。
用java编写了两个源文件a和b存放在d:,两个文件开头都有package w.文件b中的类b用到了
文件a中的public类a.在jdk环境下进行编译成功.
但是当将源文件a和b存放在d:/java/1,现在希望能将源文件a和b编译生成的.class文件放在d:/java/2.进行a编译时用命令javac -d d:/java/2 a.java时编译成功.a.class存放在了d:/java/2/w目录下,当进行b编译时却出错,提示说不能找到类a.
请教高手后得知编译时最好几个类一起编译javac *.java。否则另一个.class在别的目录用到他当然找不到 。编译出错了 。这样a编译还是没编译对于b来说都是没有编译(因为他找不到编译完的.class文件) 。
解决办法(1)javac a.java b.java 重新编译后通过。(编译时许多相关得文件一起编译这样不用考虑谁用到谁 他自己决定编译的次序 )。
(2)编译b时用javac -classpath d:/java/2 -d d:/java/2 a.java