Java 找不到主类,程序将退出
我在Windows7中使用Java 找不到主类,程序将退出,java,jar,Java,Jar,我在Windows7中使用 jar cvfm MyJarName.jar manifest.txt *.class 它创建了.jar文件。但当我试图打开它时,我会看到一个弹出窗口,上面写着 Could not find the main class: <ClassName>. Program will exit. 在命令提示下,它可以正常工作。怎么回事?我希望能够双击它。提取jar并将jar内的清单内容与外部manifest.txt进行比较。很可能您会找到问题。如果您使用的是JD
jar cvfm MyJarName.jar manifest.txt *.class
它创建了.jar文件。但当我试图打开它时,我会看到一个弹出窗口,上面写着
Could not find the main class: <ClassName>. Program will exit.
在命令提示下,它可以正常工作。怎么回事?我希望能够双击它。提取jar并将jar内的清单内容与外部manifest.txt进行比较。很可能您会找到问题。如果您使用的是
JDK 1.6
或更高版本,则可以通过Jar
工具的e
标志覆盖清单属性。(改为:
例如:
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
哈,我发现了问题所在。我使用jdk1.7制作了我的程序,但我安装了jre6。我去升级到jre7,现在它工作正常:) 行在命令提示符下工作,因为我的java路径被设置为jdk文件夹。检查这样做(在我的机器上工作): 将文件设为x.java
清单文本文件必须以新行或回车结束。如果最后一行没有以新行或回车结束,将无法正确解析。我也遇到了同样的问题。我所做的是右键单击项目->属性,然后从“选择/二进制格式”组合框中选择JDK 6。然后我做了清洁和建造,现在当我点击罐子时,它工作得很好 如果您使用较低版本的Java(示例Java1.5)构建源文件,并尝试使用较高版本的Java(示例Java1.6)运行该程序/应用程序,您将遇到此问题。
有关更好的解释,请参见此链接 我在打开JMeter 4.0时遇到了这个问题。我修正如下
我在ProgramFiles(x86)文件夹中安装了JRE 7,在ProgramFiles文件夹中安装了JDK 8。所以我刚从机器上卸载了JRE7。我只是保留了JDK的最新版本。它解决了这个问题。向我们展示清单文件的内容我无法从您所解释的内容中分辨出来,但一般来说,如果您的主类是“com.main”,那么main.class需要存在于jar中的“com”文件夹中。可能的副本是,我的清单文件只包含“main class:NatTimer”行因为我的类名是NatTimer。。。当我从罐子里取出一根时,它上面有两条额外的线;“清单版本:1.0”和“创建人:1.7.0(Oracle公司)”但这可能不是问题所在,对吗?现在,当我制作jar时,代码中没有任何包语句,也没有任何用于jaring的特殊文件夹。。。这就是问题所在,不是吗?我也有同样的问题,但我已经安装了jre7,但由于我的应用程序是32位的,所以我不得不下载并安装jre7-i586(x86)。谢谢你的回答!
c:>java -jar app.jar
java -jar jarname.jar