【发布时间】:2017-07-16 03:07:24
【问题描述】:
- 我是否需要在一个入口点类中有主类?
- 我尝试添加主类,但是当我尝试传递它时说主类无法加载或找不到。
这是我使用的命令:
jar -xvf jarname.jar
java -cp /path/filename.class $JOB_URL $USER $PASSWORD
路径名是入口点所在的文件名,具有main() 方法。
【问题讨论】:
这是我使用的命令:
jar -xvf jarname.jar
java -cp /path/filename.class $JOB_URL $USER $PASSWORD
路径名是入口点所在的文件名,具有main() 方法。
【问题讨论】:
1) 我需要在一个入口点类中有主类吗?
是的。并且传递参数不需要解压缩 jar 存档:请参阅“How do I pass parameters to a jar file at the time of execution?”
java -jar jarname.jar param1 param2
但这需要MANIFEST file inside the jar which reference the main class。
Main-Class: MyPackage.MyClass
或者你可以使用 -he 'jar e' 选项(如果你的 jar 没有Manifest.txt 文件):
如果入口点类名在包中,它可以使用'.' (点)字符作为分隔符。
例如,如果Main.class位于名为foo的包中,则可以通过以下方式指定入口点:
jar cfe Main.jar foo.Main foo/Main.class
在这两种情况下,您都不必解压缩 jar。
【讨论】:
Manifest 的情况下使用jar cfe 命令测试您的jar,如答案的最后部分所述。
Manifest,您将使用jar cfe jarname.jar path.entryclass path/entryclass.class $param(除了类名本身之外,不要忘记.class 路径名)