将类路径(sqljdbc4)添加到清单文件使 JAR 无法找到/加载主类 Main

问题描述 投票:0回答:1

最近我在项目中创建 JAR 时遇到了一些奇怪的问题。我一直在编写一个简单的 Swing 应用程序,一个数据库前端,但有一段时间无法通过 IntelliJ 将其构建为 jar。首先我遇到了 JNI 错误,然后它无法找到或加载主类“Main”,尽管我有一个非常简单的主类,称为 Main,只有方法 main()。

今天,我正在通过终端研究 JAR 创建,并决定尝试使用我的 IntelliJ 项目中的 .class 文件来进行创建。我写了一个manifest.txt(也尝试过manifest.mf),其中包含以下内容:

Manifest-Version: 1.0
Main-Class: Main
Class-Path: C:\Users\mac\IdeaProjects\MWBSQLGUI\sqljdbc4.jar

我用它来制作 JAR:

C:\mywork jar cvfm MyJarName.jar manifest.txt dir1/*.class dir2/*.class

运行 JAR 会产生“无法找到或加载主类 Main”错误。 奇怪的是,如果我从清单中删除类路径行,jar 创建就会顺利进行,并且我可以运行该应用程序。显然,它会在需要依赖的地方抛出异常,所以它确实没有多大帮助。知道如何合并 sqljdc4.jar 吗?我查阅了很多清单格式文章,看来我做得正确。我也尝试过在类路径行之后使用换行符......

这是使用清单中的类路径行创建并尝试运行 JAR 的 CMD 输出:https://i.stack.imgur.com/SKMXQ.jpg

主课内容:

import View.MWBFrame;

public class Main {
    public static void main(String[] args) {
        MWBFrame frame = new MWBFrame("MWB SQL Lookup");
    }
}
java jar cmd classpath program-entry-point
1个回答
0
投票

天哪,我明白了。经过一个月的麻烦之后,我只是随机注意到有些人在类路径中的 C:\Program Files 等之前放置了一个 \ 。这为我解决了...

© www.soinside.com 2019 - 2024. All rights reserved.