2016-05-26 7 views
0

Ich habe in letzter Zeit seltsame Probleme mit der JAR-Erstellung von meinem Projekt gehabt. Ich habe eine einfache Swing-Anwendung, ein Datenbank-Frontend, geschrieben, konnte es aber seit einiger Zeit nicht mehr über IntelliJ als Krug erstellen. Zuerst bekam ich JNI-Fehler, und dann konnte ich die Hauptklasse "Main" nicht finden oder laden, obwohl ich eine sehr einfache Main-Klasse namens Main mit nur der Methode main() habe.Das Hinzufügen des Klassenpfades (sqljdbc4) zur Manifestdatei macht JAR nicht in der Lage, die Main-Klasse zu finden/zu laden. Main

Heute habe ich über das Terminal nach JAR-Creation gesucht und beschlossen, es aus den .class-Dateien zu machen, die ich in meinem IntelliJ-Projekt hatte. Ich schrieb einen manifest.txt (versuchte mit manifest.mf auch), das enthält folgende:

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

ich diese verwendet, um die JAR zu machen: C:\mywork jar cvfm MyJarName.jar manifest.txt dir1/*.class dir2/*.class

Ausführen des JAR produzierte die „nicht finden konnte oder Last Hauptklasse Main "-Fehler. Die seltsame Sache ist, wenn ich die Klassenpfad-Zeile aus meinem Manifest entfernen, JAR-Erstellung läuft reibungslos, und ich kann die Anwendung ausführen. Es gibt natürlich Ausnahmen, wo immer die Abhängigkeit benötigt wird, also hilft es wirklich nicht viel. Irgendeine Idee, wie ich das sqljdc4.jar einbinden kann? Ich habe viele Manifestformatierungsartikel nachgeschlagen, es scheint, als würde ich es richtig machen. Ich habe mit Newline versucht (e) nach der Klasse-Bahnlinie zu ...

Hier ist die CMD Ausgabe von der Erstellung und versuchen, die JAR mit der Class-Path Linie im Manifest laufen: http://imgur.com/S0WDSyd

Inhalt der Hauptklasse:

import View.MWBFrame; 

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

Antwort

0

Oh Gott, ich habe es herausgefunden. Nach einem Monat voller Probleme bemerkte ich zufällig, dass einige Leute ein C: \ Program Files etc. in den Klassen-Pfad einfügten. Dieses reparierte es für mich ...

Verwandte Themen