设置Classpath并按顺序调用jar

时间:2016-01-30 07:12:03

标签: java bash shell classpath

我正在尝试编写一个bash脚本来自动执行我班级中的分级器执行文件的工作。

cd ReflectionJar
export CLASSPATH=.:$CLASSPATH:/MicahRamirez/out/artifacts/ReflectionJar/ReflectionJar.jar
java -jar ReflectionJar.jar Notepad ./MicahRamirez/ReflectionJar/otherclasses/Notepad
java -jar ReflectionJar.jar graff ./MicahRamirez/ReflectionJar/otherclasses/graff
java -jar ReflectionJar.jar quark ./MicahRamirez/ReflectionJar/otherclasses/quark
java -jar ReflectionJar.jar yparser         ./MicahRamirez/ReflectionJar/otherclasses/yparser
java -jar ReflectionJar.jar reflectionPackage ./ReflectionJar/MicahRamirez/otherclasses/reflectionPackage

直接结构: DirectoryStructure Pic

我目前正在接收

./reflection.sh: line 4: export: `=': not a valid identifier
./reflection.sh: line 4: export: `./MicahRamirez/out/artifacts/ReflectionJar/ReflectionJar.jar': not a valid identifier
Error: Unable to access jarfile ReflectionJar.jar
...

我真正的障碍是前两个错误。我查看了很多SO帖子,看看我如何导出类路径以及我发现的似乎无法工作......

我已经尝试了

 export CLASSPATH=$CLASSPATH:./MicahRamirez/out/artifacts/ReflectionJar/ReflectionJar.jar
 export CLASSPATH=./MicahRamirez/out/artifacts/ReflectionJar/ReflectionJar.jar

两者都没有效果。

1 个答案:

答案 0 :(得分:0)

指定-jar选项时,类路径取自Manifest文件,并忽略环境变量和/或-cp命令行参数。见documentation

  

<强> -jar

     

执行封装在JAR文件中的程序。第一个参数是JAR文件的名称而不是启动类名称。要使此选项生效,JAR文件的清单必须包含Main-Class classname 形式的行。在这里, classname 使用public static void main(String[] args)方法标识该类,该方法充当应用程序的起点。

     

使用此选项时,JAR文件是所有用户类的来源, 忽略其他用户类路径设置