windows 执行java_windows环境下载cmd命令行执行java文件

本文详细介绍了如何在命令行中使用 `javac` 和 `java` 命令编译及执行 Java 程序,强调了 `-classpath` 或 `-cp` 参数的使用。通过实例展示了在不同目录下执行 Java 程序的方法,并讨论了在多个 jar 包中查找类的逻辑。同时,解释了 Windows 和 Linux 下路径分隔符的区别。
摘要由CSDN通过智能技术生成

设:D:\workplace-Ec\workplace-java\JavaTest\src\test\下面有java文件HW.java。

HW.java内容:

/

public class HW{

public

static void main(String[] args) {

System.out.println("Hello World");

}

}

/

目标是在cmd中利用命令行执行文件。

可以在任何目录下执行。

两步骤:

javac行程.class文件。

java执行。

方法一:(-cp) 成功

a4c26d1e5885305701be709a3d33442f.png

方法二:(-classpath)

成功

a4c26d1e5885305701be709a3d33442f.png

尝试:java

后直接跟class路径(失败)

a4c26d1e5885305701be709a3d33442f.png

目标路径下尝试:(失败)

对应到本地为

C:\Program Files\Java\jdk1.6.0_14\lib;

依然失败。。。

*******************************************************************

相关文章:

javac和java命令行中的-classpath选项

这是个很基础的问题,但是因为基本上都是用现有的IDE工具来开发java程序,所以很少有人意识到这一点。

javac

-classpath,设定要搜索类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有在CLASSPATH里面的设定。

-sourcepath,设定要搜索编译所需java 文件的路径,可以是目录,jar文件,zip文件(里面都是java文件)。

所以一个完整的javac命令行应该是这样的,

假设abc.java在路径c:\src里面,在任何的目录的都可以执行以下命令来编译。

javac -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip

-sourcepath c:\source\project1\src;c:\source\project2

\lib\src.jar;c:\source\project3\lib\src.zip c:\src\abc.java

表示编译需要c:\classed下面的class文件,c:\jar\abc.jar里面的class文件,c:\zip\abc.zip里面的class文件

还需要c:\source\project1\src下面的源文件,c:\source\project2

\lib\src.jar里面的源文件,c:\source\project3\lib\src.zip里面的源文件,

注意:jar,zip里面的源文件不会有什么改动,目录下的源文件,有可能会被重新编译。

java

-classpath,设定要搜索的类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有的CLASSPATH的设定。

由于所要执行的类也是要搜索的类的一部分,所以一定要把这个类的路径也放到-classpath的设置里面。

表现在,在要执行的类的路径里面执行java时,一定要添加上点号(.)标示本目录也要搜索。

假设abc.class在路径c:\src里面

可以在任何路径下执行以下命令

java -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip;c:\src

abc

问题:如果main.class属于c:\jar\abc.jar,并且在com.cnblogs.jeffchen这个包里,那么执行java

-classpath

c:\classes;c:\jar\abc.jar;c:\zip\abc.zip;com.cnblogs.jeffchen.main即可,但是如果classpath中包含多个jar包呢?并且其他jar包中也有com.cnblogs.jeffchen会发生什么情况?错误?

在windows下,

文件路径的分割符为反斜杠\

类或者java文件列表的分割符为分号 ;

在linux下

文件路径的分隔符位斜杠 /

类或者java文件列表的分隔符为冒号 :

一个linux下编译和运行的例子

/usr/local/java/bin/javac

-classpath /tmp/javatest/lib/mail-1.3.3.jar -d /tmp/javatest/bin/

/tmp/javatest/src/jp/co/realseed/Capability.java

/usr/local/java/bin/java -classpath

/tmp/javatest/lib/mail-1.3.3.jar:/tmp/javatest/bin/

jp.co.realseed.Capability

*********************************************************

Java-第四课命令行执行Java文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值