【问题标题】:Error: Could not find or load main class Main when trying to run JAR. Manifest and classpath look fine, still doesn't work?错误:尝试运行 JAR 时无法找到或加载主类 Main。清单和类路径看起来不错,但仍然不起作用?
【发布时间】:2016-09-08 04:56:10
【问题描述】:

我一直在为我在 IntelliJ 中的工作编写一个小系统,在我进行过程中构建带有依赖项的 Jars,以检查我是否可以以一种让它在 IntelliJ 之外运行的方式构建它。有一天,当我尝试打开 Jar 时,它开始给我 JNI 错误。我找了很长时间试图修复它,并最终通过在构建 jar 之前编辑我的 manifest.mf 文件来修复它。我的清单文件现在如下所示:

Manifest-Version: 1.0
Class-Path: C:\Users\mac\IdeaProjects\sqljdbc_6.0\enu\sqljdbc4.jar
Main-Class: Main
(2 blank lines)

系统使用 sqljdbc 连接到 azure 数据库。它在 intelliJ 中编译和运行得非常好,但是现在当我尝试运行 jar 时,它给了我以下错误:错误:无法找到或加载主类 Main。主类不在我程序的任何包中,似乎其他人建议的所有选项都已正确设置。我尝试使用 java -jar 和 -cp 在 CMD 中运行它,这会导致相同的错误。另一个奇怪的事情是,尝试在 CMD 中编译 Main.java 文件会给我一大堆无意义的编译错误,尽管它是在 intelliJ 中编译的。还有其他想法吗...?我是空白的。

这是主要的类:

imports....



 public class Main {

    public static void main(String[] args) {MWBFrame frame = new MWBFrame("MWB SQL Lookup");
    }

    }

它创建 GUI 的主框架,它只是 JFrame 的扩展。

这是尝试 java -jar 时的 CMD 输出(还不能发布图像): http://imgur.com/nzpx4rn

【问题讨论】:

  • 你能分享Main类吗? (如果有package 行)
  • 永远不要在 cmets 中添加额外的信息。切勿将代码放入 cmets。格式很重要!
  • 抱歉,这里是新人 :) 编辑了 OP。
  • 您能否也发布您的java -jar 命令行(和输出)?
  • 添加了一个 imgur 链接(还不能发布图片链接)

标签: java jar classpath manifest main


【解决方案1】:

我认为为 SO 线程 How to make a runnable jar file? 标记的答案似乎对您有所帮助。

同时,您可以参考 Youtube 的视频http://www.muhlisozdemir.com/blog/how-to-create-executable-jar-files-in-intellij-idea/ 了解如何在 IntelliJ IDEA 中创建执行 jar 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2015-02-08
    • 2017-07-30
    • 2015-01-07
    • 1970-01-01
    • 2018-09-24
    相关资源
    最近更新 更多