`

JAVA和JAVAC 命令行

    博客分类:
  • java
阅读更多

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程序.pptx

    使用命令行方式开发Java程序 使用命令行方式开发Java程序 Java程序的运行机制 了解Java程序的运行机制 掌握使用命令行方式开发Java程序的步骤 Java程序的运行机制 编写源程序 编译源程序 由Java解释器解释运行 字节...

    关于java在cmd命令行的编译和运行问题

    关于java在cmd命令行的编译和运行问题的解决方法 典型的java.lang.ClassNotDefFoundError异常的解决方案 和配置classpath需要注意的问题

    JAVA程序命令行下的执行

    JAVA程序命令行下的执行 IED用惯了,基础都快忘记了 javac 先不说了,环境变量里面设置对了基本没什么问题。关键是java这个命令 java -classpath .class的类路径(如果是包的话,需要指定到包上面的路径);引用的类路径...

    java基础笔记

    编译时 javac 源文件名 java 运行的时候 java 含有main方法的 类名 注意:不要写 class 公有的 public 的类 其名字必须跟所在java源文件的文件名完全相同 main 方法在不在公有的类中没关系 非公有的类 可以跟源文件...

    java代码命令行编译在手机上运行的示例

    java代码命令行编译在手机上运行的示例。 chcp 65001 javac -encoding utf-8 ./org/test/TestJava.java dx --dex --output =D:\pro\TestJava.dex .\org\test\TestJava.class

    windows命令行中java和javac、javap使用详解(java编译命令)

    最近重新复习了一下java基础,这里便讲讲对于一个类文件如何编译、运行、反编译的。也让自己加深一下印象

    命令行下的Java编译工具

    本人08年开始接触Java,初学者当然是使用黑框框编译啦,可是JDK编译器手动太麻烦,又要javac源文件,又要java主类名,还有Applet又要手动写html,包含自定义包文件又要重新输入包文件路径。 故特意编写此编译工具,只...

    java udp转发工程,可直接在命令行运行

    .java 文件可以拷贝出去使用,根据具体情况设置目标端口号和目标IP 直接使用Retransmission.java,在文件目录下打开命令行,输入: javac Retransmission.java java Retransmission 亦可以将工程导入eclipse中运行

    使用Java编写脚本来将PDF转换为图像,Java的PDF处理库,Apache PDFBox

    2、执行以下命令来运行生成的类文件,并提供PDF文件的路径和输出文件夹的路径作为命令行参数: java PDFToImageConverter path_to_pdf_file.pdf path_to_output_folder 请将path_to_pdf_file.pdf替换为您要转换的PDF...

    JAVA环境变量设置的作用.txt

    因为通过要通过命令行的命令启动JAVA,JAVAC等编译工具和解释工具,系统必须要知道他们所在的位置,PATH就是用来指明他们的位置的. 3.CLASSPATH该变量是JAVA加载类(class or lib)的路径.只有在classpath设置的路径中的...

    JiraClient:用 Java 编写的命令行 JIRA 客户端

    javac LocalizeStrings.java 跑步 java LocalizeStrings <ANDROID> - where PATH is the path to your Android project (should have AndroidManifest.xml file in it) - <IOS> is root of iOS folder 警告 这将...

    java环境变量jdk1.8设置

    java环境变量设置,环境变量是操作系统提供的一种机制,...JAVA_TOOL_OPTIONS: Java工具的参数,用于设置JVM参数等,对javac、java、javadoc等Java命令行工具生效。 MAVEN_HOME: Maven的安装目录,如果安装了Maven,建议设置

    Java语言基础.docx

    配置环境变量:安装完成后,配置环境变量,确保您可以从命令行运行Java和Javac命令。 选择开发工具:虽然可以使用任何文本编辑器编写Java代码,但使用集成开发环境(IDE)如IntelliJ IDEA或Eclipse会更加方便,它们...

    java软件jdk和环境搭建的实验报告

    输入java,javac进行测试。 2. 编译执行HelloWorld.java 编写第一个程序HelloWorld.Java 代码如下: public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } ...

    java-calculator:Java中的简单命令行计算器

    Java计算器Java中的简单命令行计算器。怎么跑? 在您克隆此仓库的目录中打开一个终端javac Calculator.java Java计算器2017奥马尔·多玛(Omar Doma)2017

    JAVA 开发环境 Java SE Development Kit (JDK) 16.0.1 x64.zip

    其他工具包括反汇编程序,启动程序,调试器,Java 命令行脚本外壳或策略创建和管理实用程序。 大眼仔(www.dayanzai.me)在这里提示的是,Java 开发工具包集成了一组功能强大的工具,无论其知识水平如何,它们都...

    Java出租物业管理系统.zip

    编译运行以下命令行在你的编译器 javac -cp .;../lib/mysql-connector-java-8.0.23.jar;.GUI/*.java controller/*.java model/*.java 跑步, java -cp .;../lib/mysql-connector-java-8.0.23.jar;. GUI/MainGUIClass

    一个通用的Java线程池类

    1.下载解压之后,在控制台运行javac ThreadPoolTest.java 2.然后根据提示运行java命令执行示例程序,观看线程池的运行结果 目标:Java中多线程技术是一个难点,但是也是一个核心技术。因为Java本身就是一个多线程...

    java jdk8 学习笔记

    第一章 1.Java 编程语言刚开始 Oak 橡树 办公室外 已被注册 边喝咖啡边讨论名称 2.动态加载类别文档、字符串池(String Pool)等特性为节省内存而设计 ...所以javac和java都需要指定好所依赖的路径。

    jad eclipse 插件

    ad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的。不过因为是控制台运行,所以用起来不太方便。不过幸好有一个eclipse的插件JadClipse,二者结合可以方便的在eclipse中查看...

Global site tag (gtag.js) - Google Analytics