「java-cp指令」java cp是什么命令
本篇文章给大家谈谈java-cp指令,以及java cp是什么命令对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、命令行运行java程序,引入的其他jar包时,如何解决?
- 2、java指定日志配置路径命令
- 3、Java 的命令行 编译和运行参数 如:-cp 怎么理解?
- 4、请问 java -cp ".\\bin;.\\libs\\*;" org.testng.TestNG .\\testng.xml 这是什么意思?
命令行运行java程序,引入的其他jar包时,如何解决?
java -cp .;A.jar B\x0d\x0a\x0d\x0aA 是你的jar包,跟B放在一个文件夹就行。如果不在一个地方,就要指定了,如:\x0d\x0a java -cp .;d:\A.jar B\x0d\x0aB 就是你要执行的类 \x0d\x0a==================\x0d\x0a原理:\x0d\x0ajava 是执行编译后的class的,这个不用多说,都知道...\x0d\x0a-cp 就是引入外部 zip包或者jar包。\x0d\x0a 正确来说就相当于你在环境变量配置的classpath后的参数。\x0d\x0a 即:指定运行时需要的class。\x0d\x0a 其中 . 是在当前目录找 ; 以后后面的,是到你指定的目录找 \x0d\x0a==================\x0d\x0a你看我给的例子了吗?我可没那么说。\x0d\x0a第一行可是这么写的:java -cp .;A.jar B (A、B的解释在上面) \x0d\x0a.; 也别给漏了
java指定日志配置路径命令
单独的Java程序包, 需要通过命令java -jar或java -cp的方式启动;
我们可以在启动命令中加入系统运行时变量, 在log4j加载配置文件之前通过System.getProperties(“path”)读取此变量, 即可实现灵活加载当前路径.
(1) 启动脚本设置:
假设当前项目的目录结构为:
/Projects/KafkaConsumer
丨 bin 项目的启动脚本
丨 conf 项目的配置文件
丨 lib 项目的其他依赖包
丨 bogs 项目的日志输出路径
启动脚本位于bin目录下, 内容示例如下:
# 获取当前脚本所处的目录, 然后进入其上级目录, 最后pwd输出该目录, 最终的结果是/Project/KafkaConsumerbase_dir=$(cd `dirname $0`; cd ..; pwd)# 获取Java运行程序的位置, 并指定主类java_bin=$(which java)main_class=”org.shoufeng.elastic.ConsumerMain”# 通过-cp、扩展CLASSPATH、指定主类的方式启动项目, # 并通过“-D”的方式向此程序的运行时环境中设置当前项目的路径,# 即可在程序中通过System.getProperty(“base.dir”)获取此路径 nohup ${java_bin} -Dbase.dir=${base_dir} -cp ${CLASSPATH}:${base_dir}/conf:${base_dir}/lib/* ${main_class} /dev/null
(2) Java程序读取变量:
实log4j的FileAppender本身支持动态设置文件路径, 如:
log4j.appender.logfile.File=${base.log}/logs/app.log
其中“${base.log}”是一个变量, 会被System Property中的base.log的值代替, 代码中的使用方式为:
public static void main(String[] args) { // 获取系统运行时变量中的日志文件的输出路径 // 此变量需要在启动命令中通过-D的方式设置 String baseDir = System.getProperty(“b
Java 的命令行 编译和运行参数 如:-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 -cp ".\\bin;.\\libs\\*;" org.testng.TestNG .\\testng.xml 这是什么意思?
------先解释整体命令的意思,拆成三部分解释:
首先 cp 是设置classpath(如果不知道这是啥 把他暂时理解为java搜索类文件的路径就行)的缩写方式,是java的参数;
后面的org.testng.TestNG是包含main方法类的全名,同样是java参数
最后的.\\testng.xml是程序参数,或者说是main方法里的参数
--------之后解释\与\\的问题
\是windows系统代表文件路径级别的方式,点(.)则代表着当前目录,.\bin表示的是当前目录下的bin文件夹;libs同样如此;
让后就是这个双杠了,在编程的字符串中,\代表着转义字符,例如\n,\t分别对应于换行和TAB,而在字符串里表示windows路径时,我们本意需要的就是\本身,故而使用\\,做为\的转义字符;
上述情况是在编码中的字符串常量里表达的,这里我大胆的猜一下,可能写这个命令的人理解错了一些东西,作为参数,\是不需要转义的;而操作系统有这样一个默认,即输入多个杠表示的是同一级路径,比如C:\与C:\\\\\\\\都可以代表C盘根目录,所以即使写了多个杠也一样能正常使用。
------------最后说引号
这个是命令的问题,一般来讲,执行命令时会把空格后的东西当成参数,但有时,参数本身就带有空格,比如“C:\Program Files”这个路径,用引号引起来,是为了告诉命令的执行者C:\Program Files是一个不可分割的整体,不要把Files单独的当成参数了。
一般而言,出现此类情况都是文件夹名称的问题,所以在打命令时,习惯了将表达路径的参数用引号引起来,使程序不会因为路径中带有空格而出问题。
------------其它的一些建议
1.classpath是个比较重要的概念,需要好好了解一下。
2.编码里最好少用\\,这是windows的表达方式,当你需要java的跨平台特性时,可能会遇到麻烦(比如linux就不认);你可以使用/来表示路径结构,例如/C:/windows/
关于java-cp指令和java cp是什么命令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。