Shell 设置类路径
嗨,我已经写了一个shell脚本,它正在执行一个任务Shell 设置类路径,shell,classpath,Shell,Classpath,嗨,我已经写了一个shell脚本,它正在执行一个任务 java -jar abc.jar $* -adminid $j_username 在执行此命令之前,我想设置特定lib文件夹中所有jar的类路径(或要引用),如何做到这一点 set CLASSPATH=pathtojars1;pathtojars2 在您的java命令之前 或: 一种方法是: set CP=abc.jar:someother.jar java -cp $CP your.main.Class $* -adminid $j_
java -jar abc.jar $* -adminid $j_username
在执行此命令之前,我想设置特定lib文件夹中所有jar的类路径(或要引用),如何做到这一点
set CLASSPATH=pathtojars1;pathtojars2
在您的java命令之前
或:
一种方法是:
set CP=abc.jar:someother.jar
java -cp $CP your.main.Class $* -adminid $j_username
值得注意的是,在使用-jar
时,不能在类路径上指定其他jar/资源,即忽略-cp
开关,因此必须在两者之间进行选择
- 创建一个独立的JAR 合并其他JAR/资源
- 有不同的JAR文件,但是
如果使用
指定主 在运行程序时初始化-jar
“$@”
代替$*
。很少有地方需要拆分用户在空格处键入的参数,而且这不太可能是其中之一。哪个shell?假设您使用Bourne Shell派生(而不是C Shell派生),则显示的set
命令会破坏命令行参数;在C Shell派生中,它设置但不导出CLASSPATH变量。在Bourne Shell衍生工具中,您可以编写:CLASSPATH=path1:path2 java…
。在C Shell派生中,分别使用setenv CLASSPATH path1:path2
和java
命令。只有在使用C Shell派生时,set
符号才有效;如果使用Bourne shell派生,则命令会对命令行参数进行重击,$*
将等价于$CP
,这不是您想要的。
set CP=abc.jar:someother.jar
java -cp $CP your.main.Class $* -adminid $j_username