【问题标题】:Could not find or load main class while executing jar file执行 jar 文件时找不到或加载主类
【发布时间】:2016-02-16 12:55:30
【问题描述】:

我使用 netbeans 制作了 jar 文件,使用 Build and Clean Project Option。 我得到了 .jar 文件,现在当我在短时间内执行它时,出现 cmd 窗口并给出错误“执行 jar 文件时找不到或加载主类”

但是如果我使用命令提示符 java -jar "C:\Users\varun\Documents\NetBeansProjects\StockRegister\dist\StockRegister.jar" 执行 jar 效果很好

Netbeans 的输出是:

Updating property file: C:\Users\varun\Documents\NetBeansProjects\StockRegister\build\built-clean.properties
Deleting directory C:\Users\varun\Documents\NetBeansProjects\StockRegister\build
clean:
init:
deps-jar:
Created dir: C:\Users\varun\Documents\NetBeansProjects\StockRegister\build
Updating property file: C:\Users\varun\Documents\NetBeansProjects\StockRegister\build\built-jar.properties
Created dir: C:\Users\varun\Documents\NetBeansProjects\StockRegister\build\classes
Created dir: C:\Users\varun\Documents\NetBeansProjects\StockRegister\build\empty
Created dir: C:\Users\varun\Documents\NetBeansProjects\StockRegister\build\generated-sources\ap-source-output
Compiling 8 source files to C:\Users\varun\Documents\NetBeansProjects\StockRegister\build\classes
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: C:\Users\varun\Documents\NetBeansProjects\StockRegister\src\stockregister\EnterPurchase.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Copying 17 files to C:\Users\varun\Documents\NetBeansProjects\StockRegister\build\classes
compile:
Created dir: C:\Users\varun\Documents\NetBeansProjects\StockRegister\dist
Copying 1 file to C:\Users\varun\Documents\NetBeansProjects\StockRegister\build
Copy libraries to C:\Users\varun\Documents\NetBeansProjects\StockRegister\dist\lib.
Building jar: C:\Users\varun\Documents\NetBeansProjects\StockRegister\dist\StockRegister.jar
To run this application from the command line without Ant, try:
java -jar "C:\Users\varun\Documents\NetBeansProjects\StockRegister\dist\StockRegister.jar"

在 jar 文件中,我将其重命名为 .zip 并在 jar 的 Meta-Inf 文件夹中打开它 Manifest.MF 说:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.4
Created-By: 1.7.0_25-b16 (Oracle Corporation)
Class-Path: lib/AbsoluteLayout.jar lib/mysql-connector-java-5.0.8-bin.
 jar lib/swingx-all-1.6.4.jar
X-COMMENT: Main-Class will be added automatically by build
Main-Class: stockregister.StockRegister

有没有人知道为什么会这样。

【问题讨论】:

    标签: java jar


    【解决方案1】:

    您可能已经使用 ma​​in 方法定义了多个类。 仅使用 1 个带有 main 方法的类。 这将是您的启动器类。(将首先运行)。

    【讨论】:

    • 你可以有很多类,每个类都有一个 main 方法。在manifest.mf 中使用Main-Class: MyPackage.MyClass 指定从哪一个开始
    • @Marichyasana 我已经指定了我的主类,如果我通过双击 Jar 运行它,使用 cmd 时会出错:java -jar pathtojar 它工作正常,这就是我面临的问题跨度>
    • @Danish 我已经通过 Manifest 配置了启动类,如果是这种情况,它将不会通过使用 cmd 调用 jar 文件来运行。
    猜你喜欢
    • 1970-01-01
    • 2018-12-16
    • 2020-06-02
    • 2019-02-21
    • 1970-01-01
    • 2014-09-04
    • 2020-02-18
    • 1970-01-01
    • 2018-11-01
    相关资源
    最近更新 更多