JAVA 和 JAVAC 命令详细介绍
这里有新鲜出炉的 Java 设计模式, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
这篇文章主要介绍了 JAVA 和 JAVAC 命令详细介绍的相关资料, 本文对 java 和 javac 命令进行了详解, 并在 Windows 和 Linux 平台分别说明, 需要的朋友可以参考下
JAVA 和 JAVAC 命令
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
来源: http://www.phperz.com/article/18/0207/359349.html