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

转载于:https://www.cnblogs.com/JeffChen/archive/2008/01/15/1039708.html

JAVA和JAVAC 命令行相关推荐

  1. JAVA 和JAVAC命令行

    JAVA和JAVAC 命令行 javac和java命令行中的-classpath选项 这是个很基础的问题,但是因为基本上都是用现有的IDE工具 来开发java程序,所以很少有人意识到这一点. java ...

  2. 如何在Java中解析命令行参数?

    在Java中解析命令行参数的好方法是什么? #1楼 我不建议使用Apache Common CLI库,因为它是非线程安全的. 它使用带有静态变量和方法的有状态类来进行内部工作(例如OptionBuil ...

  3. 如何用命令行写java程序_如何用java实现doc命令行

    如何用java实现doc命令行, dir显示当前所有目录下的文件 cd 文件目录 进入到该目录 cd ..退到上级目录,一面是我写的代码,调试了. 不过有点小bug就是当你进去的是文件就会提示空指针异 ...

  4. 【java】javac命令在win10不可用,提示javac不是内部或外部命令,也不是可运行的程序【解决方法】

    [java]javac命令在win10不可用,提示javac不是内部或外部命令,也不是可运行的程序[解决方法] 参考文章: (1)[java]javac命令在win10不可用,提示javac不是内部或 ...

  5. java中的命令行参数_Java中的命令行参数

    java中的命令行参数 Command-line arguments in Java are used to pass arguments to the main program. If you lo ...

  6. Win10配置JDK环境变量电脑重启后java、javac命令无法使用

    Win10配置JDK环境变量电脑重启后java.javac命令无法使用 本人猜测,可能是Win10系统开启了"快速启动",在电脑开机启动时没能加载环境变量JAVA_HOME 有3种 ...

  7. 类写了package java命令出错_java/javac命令行如何同时引用多个包;错误 TypeError: 'JavaPackage' object is not callable 的含义...

    出现这类错误提示:'JavaPackage' object is not callable,可以看下所引用的jar包或者class文件是否在java的路径搜索范围内 命令行模式下:javac可以编译* ...

  8. java打包dex_Android 命令行编译、打包生成apk文件

    一.搭建搭建环境 1. 安装JDK 和 Android SDK 2. 配置环境变量 D:\android-sdk-windows\tools C:\Program Files\Java\jdk1.6. ...

  9. Java:cmd命令行中 错误: 找不到或无法加载主类(从原理出发讲解!)

    参考阅读(推荐) 使用java命令运行class文件提示"错误:找不到或无法加载主类"的问题分析 以下为原答案,不适用于所有问题场景,敬请参考上述链接(讲解非常细致) 知识点 ja ...

  10. Java基础 - javac命令详解(1) 编译基本java项目

    1.为什么要搞定 javac 命令 1.javac 是java中的编译源代码的命令工具,将.java文件编译成 .class 文件: 2.由于当下为了提高开发效率,大多数的开发工作都在 java的 集 ...

最新文章

  1. 【206】Firefox 扩展收集
  2. __block和__weak修饰符的区别
  3. 基于XGBoost的PU-Learning
  4. NoSQL数据库Redis使用命令简介
  5. RabbitMQ六种队列模式-简单队列模式
  6. Flask-1-05-CookieSession
  7. mysql给字段添加描述_用sql 语句给字段添加描述
  8. (二)Qt中QTableView中加入Check列实现
  9. docker容器别人访问很卡_docker容器下远程访问jupyter的方式
  10. kafka查看消费位置
  11. 微信小程序下拉刷新上拉加载
  12. win10远程桌面连接记录
  13. 【新学期新FLAG】一名计科新生の大一学习计划
  14. 【前端框架】Element UI Dialog 组件中执行 DOM 操作异常问题的分析与处理
  15. java代码自动抠图_Opencv java实现人脸抠图和行为识别
  16. 微信机器人-定制消息
  17. 简单常用的http压测工具
  18. 三十九 吃饭 我在软件园的那些日子里
  19. matlab计算历史波动率,已实现波动率计算
  20. 第一章 认清机运的本质

热门文章

  1. wcf中如何Host多个WCF服务?
  2. nodemon运行 提示错误:无法加载文件 C:\Users\gxf\AppData\Roaming\npm\nodemon.ps1,因为在此系统上禁止运行脚本。...
  3. AtCoder Beginner Contest 132 解题报告
  4. COM学习(四)——COM中的数据类型
  5. Red Hat Enterprise Linux上配置SQL Server Always On Availability Group
  6. 在Migration中操作新添加的字段
  7. 【matlab】画正六边形、矩形、圆形点阵
  8. Ruby on Rails 目录结构
  9. 通过阿里OSS文件服务返回的URL获取文件流下载
  10. 论一个蒟蒻的脑子里可以有多少坑(貌似咕了……目前更新保持在noip阶段)