[Java] Mit Netbeans erstellte .jar funktioniert nicht

01/23/2014 11:53 Chicken17#1
Hey Leute,

ich habe in Netbeans ein Programm erstellt, welches innerhalb von Netbeans problemlos lief. Dieses habe ich mit Netbeans in eine .jar umgewandelt (ohne Fehlermeldung).
Wenn ich die .jar ausführe (egal ob mit einer .bat oder per Doppelklick) passiert einfach nichts. Es sollte sich ein Fenster öffnen mit einem Button aber es passiert nichts und es erscheint auch keine Fehlermeldung.

Bei anderen Programmen hat es genau so geklappt. Woran könnte das liegen? :)
Falls es am Code liegt kann ich diesen per PN schicken :)


Edit: Es ist eine JFrameForm und bei einer JFrameForm ohne Code, also quasi nur ein Button hinzugefügt ohne sonstigem Code passiert beim ausführen der erstellten jar Datei auch nichts. Was fehlt da noch? :confused:
01/23/2014 12:06 Obilee#2
Ne main methode hast du aber oder ? eigentlich brauchst du nur sie um ne jar zu starten
01/23/2014 12:13 Chicken17#3
Da bin ich mir gerade auch nicht mehr so ganz sicher. Wir haben beim erstellen von Projekten in der Schule immer den Haken bei Create Main Class raus gemacht und in den Code unten die Main Class dann rein geschrieben. Bei den JFrameFormen haben wir das eigentlich dann nirgends irgendwo hin geschrieben und es tat immer. Der Source enthält auch automatisch schon beim erstellen der Datei:

PHP Code:
    public static void main(String args[]) {
        
/* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        
try {
            for (
javax.swing.UIManager.LookAndFeelInfo info javax.swing.UIManager.getInstalledLookAndFeels()) {
                if (
"Nimbus".equals(info.getName())) {
                    
javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (
ClassNotFoundException ex) {
            
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVEREnullex);
        } catch (
InstantiationException ex) {
            
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVEREnullex);
        } catch (
IllegalAccessException ex) {
            
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVEREnullex);
        } catch (
javax.swing.UnsupportedLookAndFeelException ex) {
            
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVEREnullex);
        }
        
//</editor-fold>

        /* Create and display the form */
        
java.awt.EventQueue.invokeLater(new Runnable() {
            public 
void run() {
                new 
NewJFrame().setVisible(true);
            }
        });
    } 
01/23/2014 12:17 XxharCs#4
Hast du eine Manifest im jar welche die Information zur Main-Class beinhaltet?
Was bekommst du, wenn du über die Konsole dein .jar ausführst? (java -jar DeinProgramm.jar)
01/23/2014 12:20 Chicken17#5
Quote:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.1
Created-By: 1.7.0_51-b13 (Oracle Corporation)
Class-Path:
X-COMMENT: Main-Class will be added automatically by build
Ich nehme mal an da fehlt was oder? :D
Ist aber komisch weil bei dem anderen Programm bei dem es geht auch nicht mehr drin steht :confused: Das ist allerdings auch nicht so eine JFrame wo man ein GUI Design erstellen kann, sondern dort wurde dieses per Hand erstellt :)

über die Konsole gehts auch nicht :)
01/23/2014 12:30 XxharCs#6
Quote:
Originally Posted by Chicken17 View Post
über die Konsole gehts auch nicht :)
Bekommst du wirklich keine Fehlermeldung in der Konsole ausgegeben? Sollte nämlich.


Quote:
Originally Posted by Chicken17 View Post
Ich nehme mal an da fehlt was oder? :D
Klar fehlen da Sachen. Naja NetBeans.. ich nutze lieber IntelliJ oder Eclipse.
Code:
Main-Class: MyPackage.MyClass
Main-Class würde bei dir fehlen.

Wenn ich über Eclipse eine Jar erstelle sieht diese so aus:
Code:
Manifest-Version: 1.0
Rsrc-Class-Path: ./
Class-Path: .
Rsrc-Main-Class: XxharCs.TimerStart
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

[Only registered and activated users can see links. Click Here To Register...]
01/23/2014 13:50 Chicken17#7
Hm es liegt wohl irgendwie an dieser JFrame und der MainClass. Ich lasse dir mal meinem Code zukommen :)
Die Konsole sagt "Kein Hauptmanifestattribut in ...." Was muss ich machen damit dieses hinzugefügt wird?


edit: Es tut, die MainClass hat sich irgendwie nicht von selbst da eingetragen durch die default configuration aber nach dem umändern hat es geklappt.


Bitte schließen und vielen Dank nochmal :)