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毕业设计源码-基于JavajavaC语言试题生成与考试系统(源代码)(IT计算机专业Java源代码资料).zipJava毕业设计源码-基于JavajavaC语言试题生成与考试系统(源代码)(IT计算机专业Java源代码资料).zipJava毕业设计...
在Java编程中,“javac”是Java语言的编译器,它是Java开发工具包(JDK)的一部分,用于将源代码编译成可执行的字节码。本知识系列将深入探讨“javac”的内部工作机制,帮助开发者更好地理解和优化自己的代码。 ...
`javac-parser`库很可能实现了Java语法解析器,允许Python程序读取、分析或者转换Java源代码。这样的库可以有多种用途,例如: - **静态代码分析**:检查代码质量,查找潜在的错误、性能问题或不符合编码规范的地方...
Java 和 javac 命令是 Java 语言的基本组成部分,它们在 Java 应用程序的编译和执行过程中扮演着重要的角色。javac 命令用于编译 Java 程序源代码,生成字节码文件,而 java 命令用于执行已经编译的字节码文件。 ...
开发包通常会包含JDK中的核心组件,如Java编译器(javac)、Java虚拟机(JVM)、Java运行时环境(JRE)以及开发工具,例如Javadoc(生成API文档)和JAR(打包工具)等。 在CentOS上安装这个开发包后,你可以进行...
4. 为了验证JDK是否正确安装,可以打开命令行窗口并输入`java -version`和`javac -version`,如果返回的是JDK 1.6的信息,则表明安装成功。 "使用说明.txt"文件可能包含关于如何配置环境变量、启动Java应用程序或...
OpenJDK 7提供了用于编译Java层代码和生成APK所需的工具,如javac编译器和dx工具。 在编译过程中,可能还需要其他依赖,如GNU Make、GCC等,这些通常可以通过安装Linux发行版的开发工具包来获取。例如,在Ubuntu上...
在Windows命令行中使用Java和相关命令如javac(Java编译器)和javap(Java类文件反编译器)是Java开发者的基本技能。为了深入理解这些命令的使用方法,让我们逐步详细地讨论每一个命令的具体用法和相关知识点。 ...
安装完成后,用户可以通过`java`、`javac`、`jar`等命令行工具进行Java程序的运行、编译和打包。例如,`java -version`可以检查Java的安装版本,`javac HelloWorld.java`可以编译名为`HelloWorld.java`的源代码,`...
使用命令行方式开发Java程序 使用命令行方式开发Java程序 Java程序的运行机制 了解Java程序的运行机制 掌握使用命令行方式开发Java程序的步骤 Java程序的运行机制 编写源程序 编译源程序 由Java解释器解释运行 字节...
4. **验证安装**:安装完成后,你可以通过运行`java -version`和`javac -version`命令来检查Java是否正确安装和配置。 配置OpenJDK 8,特别是对于Android开发,有以下几点需要注意: 1. **Android SDK与JDK关联**...
JAVA实战项目源码-计算机毕业设计java专业-项目源码-项目说明介绍-javaC语言试题生成与考试系统(源代码+论文) 在线考试模块包括学生登录、考试鉴权、考试时间控制和一些简单的考试意外的避免。自动评分模块包括制定...
为了确保Java环境的正确配置,一般推荐将JDK安装在非系统盘,并且在安装过程中勾选“将Java添加到系统路径”这一选项,这样可以方便在命令行中直接使用javac和java命令。 安装完成后,系统会自动更新PATH环境变量,...
这样,开发者就可以在命令行中使用诸如`java`, `javac` 和 `jar` 等工具进行开发工作。 总的来说,Java 11 OpenJDK 11.0.8.10-1是Windows用户开发和运行Java应用程序的理想选择,它提供了一套完整的开发工具集,...
Java程序的编译和运行主要涉及两个命令:`javac` 和 `java`。`javac` 是Java编译器,用于将Java源代码(.java文件)编译成字节码文件(.class文件),而 `java` 命令则负责加载并运行这些字节码文件。 ##### javac...
长期以来,这一直是NetBeans的一部分,它提供了专门针对Java编辑器的经过高度调整的Java编译器,即针对语法着色,代码完成等功能进行解析和词法分析。先决条件吉特蚂蚁1.9.9或以上JDK 8或更高版本(用于构建nb-...
标题 "plexus-compiler-javac-2.3.zip" 提到的是 Plexus 编译器的 Java 编译器组件的版本 2.3。Plexus 是一个开源的软件构建框架,它提供了一个灵活的组件化架构,用于创建、管理和运行 Maven 和其他构建工具。...
5. **验证安装**:打开命令行,输入`java -version`和`javac -version`,如果返回的是Java 11的相关信息,表明安装成功。 对于后端开发人员来说,掌握Java 11的新特性并能顺利安装和配置环境,是进行Java开发的基础...