Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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
Java 如何通过executeshell将Jenkins作业中的参数传递给JAR 我需要在一个入口点类中设置主类吗 我尝试添加main类,但当我试图通过它时,它说main类无法加载或找不到_Java_Jenkins - Fatal编程技术网

Java 如何通过executeshell将Jenkins作业中的参数传递给JAR 我需要在一个入口点类中设置主类吗 我尝试添加main类,但当我试图通过它时,它说main类无法加载或找不到

Java 如何通过executeshell将Jenkins作业中的参数传递给JAR 我需要在一个入口点类中设置主类吗 我尝试添加main类,但当我试图通过它时,它说main类无法加载或找不到,java,jenkins,Java,Jenkins,以下是我使用的命令: jar -xvf jarname.jar java -cp /path/filename.class $JOB_URL $USER $PASSWORD 路径名是输入点所在的文件名,具有main()method 1) 我需要在一个入口点类中设置主类吗 对。传递参数不需要解压缩jar存档:请参阅“” 但这需要一个新的解决方案 或者您可以使用-he“jare”选项(如果您的jar没有Manifest.txt文件): 如果入口点类名在包中,则可以使用“.”(点)字符作为分隔符。

以下是我使用的命令:

jar -xvf jarname.jar 
java -cp /path/filename.class $JOB_URL $USER $PASSWORD
路径名是输入点所在的文件名,具有
main()
method

1) 我需要在一个入口点类中设置主类吗

对。传递参数不需要解压缩jar存档:请参阅“”

但这需要一个新的解决方案

或者您可以使用-he“
jare
”选项(如果您的jar没有
Manifest.txt
文件):

如果入口点类名在包中,则可以使用“.”(点)字符作为分隔符。
例如,如果
Main.class
位于名为
foo
的包中,则可以通过以下方式指定入口点:


在这两种情况下,您都不必解压缩罐子。

@RockyHai Yes,如中所述。但是,您也可以使用
jar cfe
命令测试您的jar,而不必假设存在
Manifest
,如答案的最后一部分所述。目前,我没有添加Manifest.mf,因此我可以使用jar cfe jarname.jar path.entryclass$param。@RockyHai是的,这就是我的想法。如果您没有
清单
,您可以使用
jar cfe jarname.jar path.entryclass path/entryclass.class$param
(不要忘记
.class
路径名和类名本身)当我通过Jenkins传递参数并构建它时,Jenkins构建失败了param:没有这样的文件或目录。现在主要的班级问题解决了。你能帮我吗?@RockyHai是的,但最好问一个新问题,使用的是确切的Jenkins版本(java版本和OS版本),以及使用的作业类型(freestyle?maven?),以及作业配置中使用的确切命令。
java -jar jarname.jar  param1 param2
Main-Class: MyPackage.MyClass
jar cfe Main.jar foo.Main foo/Main.class