Java 正在尝试运行jar文件,但找不到类

Java 正在尝试运行jar文件,但找不到类,java,jar,Java,Jar,我正试图从Win7命令行运行一个jar文件,但遇到了一个可怕的问题:无法找到或加载主类PRCreateExecution 我可以通过命令行上的Win7批处理文件成功地构建jar文件 我当前的清单文件名为PRCreateExecution.mf,位于以下位置:C:\WDEclipseIDEWorkspace\MC3\src\PurchaseRequests\ 清单文件包含: Manifest-Version: 1.0 Created-By: 1.8.0_40 (Oracle Corporation

我正试图从Win7命令行运行一个jar文件,但遇到了一个可怕的问题:无法找到或加载主类PRCreateExecution

我可以通过命令行上的Win7批处理文件成功地构建jar文件

我当前的清单文件名为PRCreateExecution.mf,位于以下位置:C:\WDEclipseIDEWorkspace\MC3\src\PurchaseRequests\

清单文件包含:

Manifest-Version: 1.0
Created-By: 1.8.0_40 (Oracle Corporation)
Main-Class: PurchaseRequests.PRCreateExecution.class
(这里有额外的LF)

我运行Win7批处理文件来构建jar C:\WDEclipseIDEWorkspace\MC3\src\PurchaseRequests:

jar -cvmf PRCreateExecution.jar C:\WDEclipseIDEWorkspace\MC3\bin\PurchaseRequests\PRCreateExecution.mf C:\WDEclipseIDEWorkspace\MC3\bin\PurchaseRequests\PRCreateExecution.class C:\WDJarFiles
jar文件创建成功

现在,我使用此批处理语句尝试运行jar文件:

java -cp C:\WDEclipseIDEWorkspace\MC3\bin\PurchaseRequests;. PurchaseRequests.PRCreateExecution
从这里开始:

C:\WDEclipseIDEWorkspace\MC3\src\PurchaseRequests
但是我得到的是找不到主类PurchaseRequests.PRCreateExecution

PRCreateExecution源代码段:

package PurchaseRequests;
public class PRCreateExecution {
public static void main(String[] args)

感谢您的帮助……

首先,听起来您根本没有尝试运行jar文件。在命令行的任何地方都没有提到它

其次,看起来您的类路径是错误的——它可能应该是错误的

java -cp C:\WDEclipseIDEWorkspace\MC3\bin;. PurchaseRequests.PRCreateExecution
这是假设
bin
目录包含一个
PurchaseRequests
目录,其中包含
PRCreateExecution.class


第三,您应该遵循包的Java命名约定——它们应该是小写。

我遇到了类似的问题,即使用Netbeans构建可分发的jar文件。我的建议是尝试直接从命令行和它所在位置的目录路径中运行jar

可以看到,在清单文件中有如下内容:

Manifest-Version: 1.0 Created-By: 1.8.0_40 (Oracle Corporation) Main-Class: PurchaseRequests.PRCreateExecution.class (extra LF is here)
我建议您将行更改如下:

Manifest-Version: 1.0 Created-By: 1.8.0_40 (Oracle Corporation) (insert CF)
Main-Class: PurchaseRequests.PRCreateExecution.class (extra LF is here)
您可以将此作为参考:

https://docs.oracle.com/javase/tutorial/deployment/jar/appman.html
这篇文章也可能有用:

http://stackoverflow.com/questions/12767886/use-of-manifest-file-in-java

从清单中删除.class后缀

它应该是这样的:

Manifest-Version: 1.0
Created-By: 1.8.0_40 (Oracle Corporation)
Main-Class: PurchaseRequests.PRCreateExecution

然后运行
java-jar(jar文件的名称).jar

通常,当我从批处理文件运行
.jar
文件时,我使用的是代码
java-jar JarFileName.jar
。我使用的是一个包,所以我非常确定我的需要是package.JarFileName.jar如果你转到
文件>导出
,我会使用一个包,您可以使用
main
方法选择
class
。然后,将其导出为
.jar
文件。这样,所有引用的代码都将放入
.jar
文件中。使用
java-jarClassWithMainMethodName.jar运行它。我从.mf文件中删除了.class。java-jar PurchaseRequests.PRCreateExecution.jar错误:无法访问jarfile PurchaseRequests.PRCreateExecution.jarI输入错误,但您的响应是解决方案。当我运行您建议的行:java-cp C:\WDEclipseIDEWorkspace\MC3\bin;时,我如何给您评分;。PurchaseRequests.PRCreateExecution我收到一个错误:发生了一个JNI错误。@user337447:这听起来像是另一个问题,我们没有足够的上下文来进一步帮助您。@mp911de给了我解决方案,但我不知道单击何处可以给他评分。@user337447:您可以单击勾号。