大家好,
我有大约10个罐子,当我运行我的程序时,我会调用以下内容:
java -Xmx1024m -cp a.jar;b.jar;c.jar;whatever.jar -Dfile.encoding=UTF-8 [package][class]
我想将其作为可执行jar。我想当我unjar
(这听起来很奇怪,但我使用的是java命令 - 不使用通用的zip程序)包含[package][class]
的jar,更新manifest.mf
并重新启动它。不幸的是,这不起作用。
我是否可以将其作为可执行文件jar
或者我应该解除它并将其全部加起来?
答案 0 :(得分:1)
您只需在清单文件中使用此行
Main-Class: my.package.Main
然后使用jar
标志运行m
命令,并为其指定清单文件的名称:
jar cmf manifest main.jar *.class
不幸的是,罐子里不能包含其他罐子。给包含入口点的jar Main-Class
,然后设置类路径,以便可以访问其他9个jar。
答案 1 :(得分:-1)
Jar是一组文件。要使jar成为可执行文件,最重要的是它应该包含一个具有 main()方法的类。因此,只有包含具有main方法的.class文件时,才能使jar可执行。那个班级看起来像这样。
public class AClass
{
public static void main(String[] args)
{
...
}jar
...
}
然后,只有这样才能使jar可执行。
如果存在main()方法类。然后让jar可执行文件执行此操作。
Main-Class:AClass
,不要忘记在此行后按enter
。请遵循此link 要执行jar,(假设你创建了a.jar可执行文件),然后运行java -jar a.jar
来运行jar文件。
第二件事是您在问题中发布的命令不要求这些jar可执行。当您使用-cp
时,参数(即 a.jar 等...)基本上是库,换句话说,当java
查找要查找的类文件时一个类或一个函数的定义或其他任何内容,如果它正在查找的内容不是java标准库的一部分,它将查看这些jars
。