Java 的命令行 编译和运行参数 如:-cp 怎么理解?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 的命令行 编译和运行参数 如:-cp 怎么理解?相关的知识,希望对你有一定的参考价值。
java -cp .;./dist/classes;lib/commons-net-3.0.1.jar;lib/log4j-1.2.16.jar;lib/ojdbc6.jar;lib/jsmpp-2.1.0;lib/RXTXcomm.jar org.smslib.smsserver.SMSServer
大家帮忙把这个拆分理解以下。 谢谢!!
用法:javac <选项> <源文件>
其中,可能的选项包括:
-g 生成所有调试信息
-g:none 不生成任何调试信息
-g:lines,vars,source 只生成某些调试信息
-nowarn 不生成任何警告
-verbose 输出有关编译器正在执行的操作的消息
-deprecation 输出使用已过时的 API 的源位置
-classpath <路径> 指定查找用户类文件的位置
-cp <路径> 指定查找用户类文件的位置
-sourcepath <路径> 指定查找输入源文件的位置
-bootclasspath <路径> 覆盖引导类文件的位置
-extdirs <目录> 覆盖安装的扩展目录的位置
-endorseddirs <目录> 覆盖签名的标准路径的位置
-d <目录> 指定存放生成的类文件的位置
使用-d参数,如类中定义了包,则编译时会自动生成包, 如:javac -d . helloworld.java
表示在当前目录下编译Helloworld 类。.表示当前目录,如helloword中定义有包,则在当前目录下生成包:
-encoding <编码> 指定源文件使用的字符编码
-source <版本> 提供与指定版本的源兼容性
-target <版本> 生成特定 VM 版本的类文件
-version 版本信息
-help 输出标准选项的提要
-X 输出非标准选项的提要
-J<标志> 直接将 <标志> 传递给运行时系统
java
用法: java [-选项] 类 [参数...]
(执行一个类)
或者 java [-选项] -jar jar文件 [参数...]
(执行一个jar文件)
其中,可能的选项包括:
-client 选择 "client" VM(ginger547:应该是指Virtual Machine)
-server 选择 "server" VM
-hotspot 与 "client" VM同义 [不赞成]
默认情况的VM是client.
-cp <一个文件夹和zip/jar文件组成的类搜索路径>
-classpath <一个文件夹和zip/jar文件组成的类搜索路径>
一个由文件夹,JAR压缩文件,或者ZIP压缩文件组成的用来搜索类的列表
-D<名字>=<值>
设置一个系统属性
-verbose[:class|gc|jni]
使详细输出变的可用
-version 打印产品版本然后退出
-version:<值>
只运行指定版本
-showversion 打印产品版本后继续
-jre-restrict-search | -jre-no-restrict-search
在版本搜索的时候,包含/排除用户私人的JRE
-? -help 打印帮助信息
-X 打印非标准选项帮助
-ea[:<包名>...|:<类名>]
-enableassertions[:<包名>...|:<类名>]
使断言可用
-da[:<包名>...|:<类名>]
-disableassertions[:<包名>...|:<类名>]
是断言不可用
-esa | -enablesystemassertions
使系统级断言可用
-dsa | -disablesystemassertions
使系统级断言不可用
-agentlib:<库名>[=<选项>]
加载本地代理库<库名>,例如. -agentlib:hprof
同时可查看, -agentlib:jdwp=help和 -agentlib:hprof=help
-agentpath:<路径名>[=<选项>]
通过全路径名来加载本地代理库
-javaagent:<jar路径>[=<选项>]
加载Java编程语言代理,可查看 java.lang.instrument 参考技术A 如果当前你要编译的java文件中引用了其它的类(比如说:继承),但该引用类的.class文件不在当前目录下,这种情况下就需要在javac命令后面加上-classpath参数,通过使用以下三种类型的方法 来指导编译器在编译的时候去指定的路径下查找引用类。
(1).绝对路径:javac -classpath c:/junit3.8.1/junit.jar Xxx.java
(2).相对路径:javac -classpath ../junit3.8.1/Junit.javr Xxx.java
(3).系统变量:javac -classpath %CLASSPATH% Xxx.java追问
../ ./ 这两个有什么区别 ,谢! 还有就是编译和运行 的时候都需要制定类路径吗(如果引用的话)?
追答../ 代表当前目录的上一层目录
./ 代表当前目录
如果你引用的类的所在目录已经在 %CLASSPATH% 中写了,就无需此参数了。
参见:blog.csdn.net/pengpenglin/article/details/1682858
单词我知道 就是它这个是怎么理解的 这个参数的作用是什么 ? 网上说的我不太理解!
追答。。。这个参数后跟随的 都是 org.smslib.smsserver.SMSServer 这个需要使用到的
类库路径
-cp .;./dist/classes .代表当前路径 ./ 指的是?
如何使用命令行编译和运行java文件
相信大家现在一般都在使用IDE环境来开发运行java文件,但我觉得可以在命令行里面简单运行java文件,技多不压身。
接下来我来说一下编译和运行java文件:
- 第一步,首先下一个入门程序(注意:一定要将程序里面的类名跟保存的文件名称写成一样)
-
- 第二步,进入到java文件保存的目录(注意:必须要进入到保存的目录,否则运行会出错)
- 第四步使用javac HelloWorld.java编译源程序会生成一个.class的中间代码
- 第五步使用java HelloWorld运行程序(注意java后面的程序结尾不需要写.class)
-
-
以上是关于Java 的命令行 编译和运行参数 如:-cp 怎么理解?的主要内容,如果未能解决你的问题,请参考以下文章