【问题标题】:Could not find the main class: Main. Program will exit找不到主类:Main。程序将会退出
【发布时间】:2012-04-27 17:37:17
【问题描述】:

好的,请在关闭此线程或回答完全超出主题的问题之前听我说。我已经检查了每一个解决方案。我已经阅读了所有其他类似的 SO 主题,并尝试了他们在那里所说的一切。我正在使用 NetBeans,是的,它确实成功地运行了我的程序,而且我的命令 promt 也完美地运行了我的程序。我得到“找不到主类:Main。程序将退出。”仅当我尝试双击 jar 时。是的,我有清单文件,它告诉我的主类在哪里。我什至尝试使用仅创建一帧的 Main 类创建新项目,然后构建它,但仍然出现相同的错误。

这是我在默认包中的主类(唯一类):

public class Main {

    public static void main(String[] args) {
        JFrame frame = new JFrame("Test");
        frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setBounds(450, 170, 400, 400);
    }
}

这里是清单文件:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.7.0_02-b13 (Oracle Corporation)
Class-Path: 
X-COMMENT: Main-Class will be added automatically by build
Main-Class: Main

【问题讨论】:

  • 检查你的操作系统中的 jar 文件关联,看看当你“打开”一个 jar 文件时它运行什么命令。
  • 编辑了我的帖子并添加了我的课程和清单。如何在我的操作系统中检查我的 jar 文件关联?
  • Main-Class 行上是否有换行符?我忘记了你需要哪一个,但你要么必须有一个新行,要么不能有一个新行......
  • @RohitMalish 你读过这个问题吗? stackoverflow.com/questions/5428079/…
  • 清单末尾有空行。是的,我已经阅读并尝试了该命令提示行,它显示了 jarfile="C:\Program Files (x86)\Java\jre6\bin\javaw.exe" -jar "%1" %*

标签: java build jar


【解决方案1】:

经过漫长而紧张的时间试图找到解决方案,我终于发现了问题所在。因此,正如您所看到的,出于某种原因,NetBeans 默认使用 JDK7,但运行 .jar 文件时,我的系统使用 JRE6。所以我更改了我的 NetBeans 设置以使用和编译 JDK6 并让它工作。我的代码还有 JDK6 不支持的菱形运算符。

【讨论】:

  • 这对我有用。我在 Ubuntu 上仍然安装了旧版本 6 的 icedtea。我删除了版本 6 的旧 jdk 和 jre 包。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-13
  • 2011-11-28
  • 2011-03-31
  • 1970-01-01
  • 2012-12-28
  • 1970-01-01
相关资源
最近更新 更多