原文:http://www.cnblogs.com/JeffChen/archive/2008/01/15/1039708.html
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
分享到:
相关推荐
在Windows命令行中使用Java和相关命令如javac(Java编译器)和javap(Java类文件反编译器)是Java开发者的基本技能。为了深入理解这些命令的使用方法,让我们逐步详细地讨论每一个命令的具体用法和相关知识点。 ...
使用命令行方式开发Java程序 使用命令行方式开发Java程序 Java程序的运行机制 了解Java程序的运行机制 掌握使用命令行方式开发Java程序的步骤 Java程序的运行机制 编写源程序 编译源程序 由Java解释器解释运行 字节...
Java程序的编译和运行主要涉及两个命令:`javac` 和 `java`。`javac` 是Java编译器,用于将Java源代码(.java文件)编译成字节码文件(.class文件),而 `java` 命令则负责加载并运行这些字节码文件。 ##### javac...
Java命令行辅助工具是一款专为Java开发者设计的小型应用程序,旨在简化Java源代码的编译和执行过程。在日常开发中,我们通常需要通过命令行界面(CLI)来操作Java程序,这包括编译`.java`源文件为`.class`字节码文件...
JAVA程序命令行下的执行 IED用惯了,基础都快忘记了 javac 先不说了,环境变量里面设置对了基本没什么问题。关键是java这个命令 java -classpath .class的类路径(如果是包的话,需要指定到包上面的路径);引用的类路径...
javac StartTomcatViaJava.java ``` 2. **运行Java程序**: ```bash java StartTomcatViaJava ``` 3. **观察结果**: - 如果一切正常,控制台会输出“Tomcat started successfully.”,并且可以在浏览器中...
2. **编译后的字节码文件**(.class):Java源代码经过javac编译器编译后生成的,这些文件是JVM可以直接执行的。 3. **资源文件**:可能包含游戏的文本描述、数据文件或其他非代码元素,这些可能以文本或特定格式...
在Java中,命令行工具主要包括`javac`(Java编译器)和`java`(Java解释器)。下面我们将深入讲解这两个工具以及相关的命令行操作。 1. **javac命令**: `javac`是Java的源代码编译器,它将.java源文件转换为....
Java是一种广泛使用的编程语言和计算平台,它拥有丰富的命令行工具集合,这些工具支持从开发到部署的整个Java应用程序生命周期。这些工具包含在JDK(Java Development Kit)中,是开发者日常工作的基础。下面将对...
在Java编程中,命令行编译是学习和工作中不可或缺的一部分,尤其是在没有集成开发环境(IDE)的情况下。本文将深入探讨如何在命令行环境下编译和运行包含包结构的Java程序。 首先,Java中的包(package)是用来组织...
本文将从 Java 命令行编辑的基础知识入手,逐步讲解 Java 编程语言的基本结构和基础知识。 一、 Java 命令行编辑的基础知识 Java 命令行编辑的基础知识包括编译和运行 Java 程序。编译 Java 程序可以使用 javac ...
在Java命令行编译和运行过程中,理解并正确处理包、类的相对路径以及`classpath`的设置,对于构建复杂的Java应用程序至关重要。虽然这可能比使用IDE时更显繁琐,但它帮助开发者深入理解Java编译和运行的底层机制,...
- **语义分析**:在此阶段,javac 进行类型检查,确保所有表达式和语句符合 Java 类型系统,并进行符号表的填充。 - **代码生成**:最后,javac 生成字节码,每个方法对应一个 `.class` 文件中的方法部分,同时...
标题中提及的“JAVA和JAVAC 命令详细介绍”,指的是Java语言编译器和解释器两个重要工具的详细使用说明。Java语言作为一种跨平台、面向对象的编程语言,在编程开发中占有重要地位。其中,Java虚拟机(JVM)是Java...
这个变量可以帮助系统快速定位到Java开发工具集(JDK)的位置,包含了编译器`javac`和其他命令行工具。 **2. PATH** `PATH`环境变量是系统用来寻找可执行文件的路径列表。当我们在命令行输入`java`或`javac`等命令...
【Java五子棋小游戏】是一款基于命令行界面的娱乐项目,它通过纯文本方式呈现棋盘,让两个玩家在控制台上交替下棋。这个小游戏展示了Java编程语言在实现交互式应用方面的灵活性和功能。 首先,我们要理解Java的基础...
本文将详细介绍Java命令行下几个常用的小命令,包括`java.exe`、`javac.exe`、`javaw.exe`、`javah`和`javap`,以及`jdb.exe`的使用方法。 #### 1. `java.exe` `java.exe`是用于运行Java应用程序的命令行工具。...
编译时 javac 源文件名 java 运行的时候 java 含有main方法的 类名 注意:不要写 class 公有的 public 的类 其名字必须跟所在java源文件的文件名完全相同 main 方法在不在公有的类中没关系 非公有的类 可以跟源文件...