Java 的命令行 编译和运行参数 如:-cp 怎么理解?

作者&投稿:歧贞 (若有异议请与网页底部的电邮联系)
如何识别java命令行编译参数~

javac

用法: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
-classpath
一个由文件夹,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:[=]
加载Java编程语言代理,可查看 java.lang.instrument

这里给你一个具体的场景来讲述如何使用命令行编译和运行Java代码:
任务
我们有一个相当标准的Java工程,它包含三个顶层文件夹:
/bin-用来存放已编译好的.class文件
/lib-用来存放第三方.jar文件
/src-存放.java源代码
我的任务就是要从Java工程根目录去编译和运行工程。我们将使用Windows操作系统作为例子(和在Unix系统上的唯一区别就是路径分隔符是”:“而不是”;“)。
编译Java代码
第一步是把文本文件.java源代码编译成Java虚拟机字节码文件(.class)。这一步使用一个叫javac的JDK工具来完成。
假设我们在应用的根目录下,从com.example包下尝试把Application.java文件,以及把lib文件夹中的lib1.jar和lib2.jar库编译到目标文件夹bin下,编译命令应该是如下格式:
javac -d bin -sourcepath src -cp lib/lib1.jar;lib/lib2.jar src/com/example/Application.java1
编译完后,/bin/com/example/Application.class应该就会创建出来了。如何Application.java使用了其他工程的类,那么他们全部会自动被编译并且放到相应的文件夹下。
运行Java代码
为了启动我们刚刚编译的.class文件,需要另外一个叫java的JDK工具。
假设我们在应用的根目录下,为了能够启动com.example包中的,使用了lib文件夹下的lib1.jar和lib2.jar库的Application.class文件,启动命令应该是如下
java -cp bin;lib/lib1.jar;lib/lib2.jar com.example.Application
我们在这里没有提供文件名,只有一个实际的类名,java会基于提供的classpath(缩写成cp)路径去搜索。

javac

用法: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

如果当前你要编译的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

cmd -> javac 就可以查看到参数信息 了。

-classpath


青山湖区17111107002: Java 的命令行 编译和运行参数 如: - cp 怎么理解? -
宾水黄金: javac用法:javac <选项> <源文件> 其中,可能的选项包括:-g 生成所有调试信息-g:none 不生成任何调试信息-g:{lines,vars,source} 只生成某些调试信息-nowarn 不生成任何警告-verbose 输出有关编译器正在执行的操作的消息-...

青山湖区17111107002: 编译java程序的命令是什么?运行java应用程序的命令是什么?? -
宾水黄金: 当前默认目录为C盘Users文件夹下的Administrator文件夹.一般而言,我们习惯改变当前目录.由于windows有磁盘分区,若要跳到其他磁盘,例如E盘,有几种方法: 1、输入命令: pushd 路径(此命令可将当前目录设为所希望的任一个已存...

青山湖区17111107002: 如何使用命令行编译以及运行java文件 -
宾水黄金: #命令行运行java文件:1.打开(cd java文件所在目录)2.配置: set path=C盘下jdk1.5.0_05/bin所在的目录 --你自己的jdk安装目录 set classpath=. --当前路径 注:若要导包时(如.jar包),就应 set classpath=.;包的路径3.编译(dir java文件当前...

青山湖区17111107002: 怎么用命令行编译运行Java?cmd中javac和java命令的运用? -
宾水黄金: 首先要配置环境变量 然后在cmd命令行里输入一个javac回车 会弹出很多东西,说明环境变量配置好了 编写一个.java文件 在cmd中进入到你文件的存放目录下 编译命令 javac 空格 文件名.java 编译成功后,你的当前目录下会出现一个.class文件 然后java 空格 文件名 回车运行 注意这里不需要文件后缀名

青山湖区17111107002: java中的“在命令行中编译和运行”怎样操作
宾水黄金: 要想编译和运行java文件,很简单,只需要两个命令:(1)javac:作用:编译java文件;使用方法:javacHello.java,如果不出错的话,在与Hello.java同1目录下会生成1个Hello.class文件,这个class文件是操作系统能够使用和运行的文件.(2)java:作用:运行.class文件;使用方法:javaHello,如果不出错的话,会履行Hello.class文件.注意:这里的Hello后面不需要扩大名.

青山湖区17111107002: 如何使用命令行编译和运行Java代码 -
宾水黄金: 这里7a686964616fe4b893e5b19e31333365653264给你一个具体的场景来讲述如何使用命令行编译和运行Java代码:任务 我们有一个相当标准的Java工程,它包含三个顶层文件夹: /bin-用来存放已编译好的.class文件 /lib-用来存放第三方.jar文...

青山湖区17111107002: java命令行参数 -
宾水黄金: 这个跟普通的运行没区别.java Message是指运行Message.class.后面的3个-g cruel world是当做参数传入主方法的String类型数组的.因此这就是运行Message并且传入3个参数进去而已.

青山湖区17111107002: java编译命令怎么配置?
宾水黄金: 1.编译:打开高级--工具配置,在命令行下面输入javac %n%e,工作目录下输入%p ,在菜单项目名称下输入编译Java(可随意取名,只要自己喜欢),还有下面的checkbox中要选中保存活动文件,这样才在编译的时候先保存活动文件,在DOS...

青山湖区17111107002: Java虚拟机几个命令行参数说明是什么呢?
宾水黄金: 一、运行class文件 执行带main方法的class文件,Java虚拟机命令参数行为: java 注意:CLASS文件名不要带文件后缀.class 例如: java Test 如果执行的class文件是带...

青山湖区17111107002: java命令行参数是什么意思 -
宾水黄金: 这个名词我们可以分开来看:“命令行"就是:DOC命令行"了,也就是那个黑色的框框."参数就"是程序里面所需要的"参数"了.合起来"命令行参数”就是“在DOC下输入的程序所需的参数”.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网