我是靠谱客的博主 怕孤独猫咪,最近开发中收集的这篇文章主要介绍使用MyEclipse编译运行程序 与 使用命令行编译运行程序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这是关于在命令行中,使用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编译运行程序 与 使用命令行编译运行程序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部