我使用
在Windows 7中使用命令提示符创建了一个可执行jarjar cvfm MyJarName.jar manifest.txt *.class
创建了.jar文件。但是当我尝试打开它时,我会弹出一个窗口,上面写着
Could not find the main class: <ClassName>. Program will exit.
然而,当我使用
时java -jar jarName.jar
在命令提示符下,它工作正常。这是怎么回事?我希望能够双击它。
答案 0 :(得分:41)
在
java -jar jarname.jar
行正在命令提示符下工作,因为我的java路径设置为jdk文件夹。
答案 1 :(得分:3)
如果您使用的是JDK 1.6
或更高版本,则可以通过e
工具的Jar
标记覆盖清单属性。 (阅读 - Setting an Entry Point with the JAR Tool):
示例:
package pack;
public class Test
{
public static void main(String []args)
{
System.out.println("Hello World");
}
}
编译并运行Jar工具,
c:\>jar cfe app.jar pack.Test pack/Test.class
调用应用
c:>java -jar app.jar
答案 2 :(得分:2)
Manifest文本文件必须以新行或回车符结束。如果最后一行没有以新行或回车结束,则不会正确解析。
答案 3 :(得分:1)
我遇到了同样的问题。我所做的是我右键单击了项目 - &gt;属性,并从&#34;选择/二进制格式&#34;组合框,我选择了JDK 6.然后我做了清理和构建,现在当我点击Jar,它工作得很好。
答案 4 :(得分:0)
提取jar并将jar中清单的内容与外部manifest.txt进行比较。你很有可能找到问题所在。
答案 5 :(得分:0)
如果使用较低版本的Java(示例Java1.5)构建源文件并尝试使用较高版本的Java(例如java 1.6)运行该程序/应用程序,则会出现此问题。 有关更好的解释,请参阅此链接click here
答案 6 :(得分:0)
我在打开JMeter 4.0时遇到了这个问题。我固定如下。
我在Program Files(x86)文件夹中安装了JRE 7,在Program files文件夹中安装了JDK 8。因此,我只是从计算机上卸载了JRE7。我只是保留了最新版本的JDK。它解决了这个问题。
答案 7 :(得分:-1)
以这种方式检查(在我的机器上运行):
让文件为x.java