我是靠谱客的博主 秀丽小丸子,最近开发中收集的这篇文章主要介绍java -cp 命令参数简述,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

说明一

java -cp .;c:dir1lib.jar Test

-cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;”

分隔,linux上是分号“:”分隔。不支持通配符,需要列出所有jar包,用一点“.”代表当前路径。
虽然现在都有eclipse之类的IDE了,但有时候后会手工编译和运行一些程序,很多人包括多年开发经验的人都不知道怎么在命令行参
数运行类。有点杯具……
使用范例:
java -cp …libhsqldb.jar org.hsqldb.Server -database mydb

java -cp …/lib/hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 mydb
1 Java代码
2 java -jar minusyhd.jar
3 Manifest-Version: 1.0
4 Main-Class: minusyhd.MinusYHD
5 Class-Path: jconn4.jar
-cp 参数后面是类路径,是指定给解释器到哪里找到你的.class文件,
写法:

java -cp .;myClass.jar packname.mainclassname

classpath中的jar文件能使用通配符,如果是多个jar文件,要一个一个地罗列出来,从某种意义上说jar文件也就是路径。

要指定各个JAR文件具体的存放路径,相同路径有多个可使用通配符

java -cp .;c:classesmyClass.jar;d:classes*.jar packname.mainclassname

bat文件写法:

Java代码
java -cp MinusYHD.jar minusyhd.MinusYHD > minusyhed.log
exit
”> minusyhed.log“ 指定System.out输出文件名

说明二

cp参数就是classpath

java -cp ".;dir/;dir/a.jar;dir/b.jar" Main

从java1.6开始,cp参数支持通配符匹配jar文件。需要注意两点:

用引号"
用*,而不是*.jar
Windows:
java -cp “Test.jar;lib/*” my.package.MainClass

Linux:
java -cp “Test.jar:lib/*” my.package.MainClass

若不支持通配符,bash shell支持用以下方式:

java -cp $(echo lib/*.jar | tr ’ ’ ‘:’)

其中先执行KaTeX parse error: Double superscript at position 31: …b/*.jar | tr ' '̲ ':',然后把(echo lib/*.jar | tr ’ ’ ‘:’)部分替换为命令返回的字符串,再执行替换后的java命令。
tr ’ ’ ':'会把空格替换为:

注意:
-cp "foo/"只表示foo目录下的jar,不包括foo下的class,若要包括则用-cp "foo;foo/"或-cp “foo/*;foo”,这里的顺序会决定是先加载jar还是class。
foo/*不会递归加载foo下子目录的jar。
foo/*加载foo目录下的jar顺序不是固定的,所以程序不应该依赖固定的顺序。若需要依赖则用枚举方式而不是通配符方式添加。
manifest.mf中的Class-Path不支持通配符。

最后

以上就是秀丽小丸子为你收集整理的java -cp 命令参数简述的全部内容,希望文章能够帮你解决java -cp 命令参数简述所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部