概述
这是关于在命令行中,使用java -classpath的小实验。
首先,必须在系统环境变量中设置过classpath,如何设置见: http://www.21jn.net/html/72/n-272.html
开始我对编译路径的探讨,
首先,写一个小程序(我这个程序是不带包的,即没有package语句):
import java.io.File;
public class AquariumInSwing {
public static void main(String[] args) {
String myPath = System.getProperty( "java.class.path");
System.out.println(myPath);
myPath = System.getProperty("user.dir");
System.out.println(myPath);
File file = new File(".");
System.out.println(file.getAbsolutePath());
}
}
工程的目录是:D:JavaWorkspaceAquarium
.java的源文件在D:JavaWorkspaceAquariumsrc下,
.class文件由MyEclipse编译后放在D:JavaWorkspaceAquariumbin下,
使用MyEclipse编译,运行,得到的结果是(不包括--------------------------------):
--------------------------------------------------------------------
D:JavaWorkspaceAquariumbin
D:JavaWorkspaceAquarium
D:JavaWorkspaceAquarium.
--------------------------------------------------------------------
接下来,我希望在命令行中,执行该程序,看看输出的结果
因为.class文件已经在bin下了,所以,我直接在命令行下去到
(1)D: 转到D盘
(2)cd D:JavaWorkspaceAquariumbin 去到bin下
(3)java AquariumInSwing
得到的结果是:
--------------------------------------------------------------------
.;C:Program FilesJavajdk1.6.0_18libdt.jar;C:Program FilesJavajdk1.6.0_18libtools.jar
D:JavaWorkspaceAquariumbin
D:JavaWorkspaceAquariumbin.
--------------------------------------------------------------------
完全不一样嘛~~~~~
怎么会这样???!!!!!!
我的估计是:MyEclipse执行程序时,通过-classpath修改了运行时的classpath,即覆盖了我们之前设置的环境变量classpath。
如果想在命令行中,得到与MyEclipse运行时一样的效果,可以这样:
java -classpath D:JavaWorkspaceAquariumbin AquariumInSwing
结果:
----------------------------------------------------
D:JavaWorkspaceAquariumbin
D:JavaWorkspaceAquarium
D:JavaWorkspaceAquarium.
---------------------------------------------------
最后补充一点 文件夹的名字不要有空格,例如不要把JavaWorkspace起名为Java Workspace,
否则,-classpath 参数会不正确。
但是,如果真的有空格,可以使用引号,引住-classpath的参数,即:
java -classpath "D:JavaWorkspaceAquariumbin" AquariumInSwing
最后,大家可以试试这个
java -classpath "%classpath%;D:JavaWorkspaceAquariumbin" AquariumInSwing
其实,-classpath会替代系统环境变量中设置的classpath,如果不想被替代,可以通过%classpath%,然后再追加自己的classpath,记住用分号(;)分割。
最后
以上就是怕孤独猫咪为你收集整理的使用MyEclipse编译运行程序 与 使用命令行编译运行程序的全部内容,希望文章能够帮你解决使用MyEclipse编译运行程序 与 使用命令行编译运行程序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复