Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 设置类路径_Shell_Classpath - Fatal编程技术网

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_

嗨,我已经写了一个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_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