将Class-Path(sqljdbc4)添加到清单文件会使JAR无法查找/加载主类Main

时间:2016-05-26 09:20:00

标签: java jar cmd classpath main

我最近从我的项目中创建了JAR的一些奇怪问题。我一直在编写一个简单的Swing应用程序,一个数据库前端,但是暂时还没能通过IntelliJ将它构建为jar。首先我得到了JNI错误,然后它无法找到或加载主类" Main"尽管事实上我有一个非常简单的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" -error。 奇怪的是,如果我从清单中删除类路径行,jar创建顺利进行,我可以运行应用程序。它显然会在需要依赖性的地方抛出异常,所以它实际上并没有多大帮助。知道如何合并sqljdc4.jar吗?我查了很多明显的格式化文章,看起来我正确地做了。我也尝试过类路径后的新行...

这里是创建并尝试使用清单中的Class-Path行运行JAR的CMD输出:http://imgur.com/S0WDSyd

主类的内容:

import View.MWBFrame;

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

1 个答案:

答案 0 :(得分:0)

天啊,我明白了。经过一个月的麻烦,我只是随机注意到有些人在Class-Path中的C:\ Program Files等之前放了一个\。这为我修好了......