Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Jar wirft NullPointerException (in Eclipse läuft es)
da dies mein erster Beitrag hier ist, stelle ich mich bei der Gelegenheit gleich kurz vor. Mein Name ist Mathias (richtig, nur ein t ;D), ich bin 18 Jahre alt und mache derzeit eine Lehre als Fachinformatiker Fachrichtung Anwendungsentwicklung. In der Firma arbeiten wir mit Java, davor hab ich zu Hause schon C++ gemacht.
In meiner Freizeit habe ich nun ein kleines Tool geschrieben, welches in bzw. aus Eclipse heraus auch problemlos läuft. Damit das ganze optisch etwas ansprechender ist, habe ich 2 externe .jars für das Look-and-Feel eingebunden, war alles kein Problem.
Nun, um das Programm auf einem anderem Rechner testen zu können habe ich mit Eclipse eine ausführbare .jar Datei erstellt. Wenn ich diese .jar nun per Doppelklick ausführe will, passiert einfach garnichts. Wenn ich das Ganze über die Konsole ausführen will (java -jar) erhalte ich komischerweise eine NullPointerException.
Da ich in Sachen Java ein Neuling bin, wäre ich sehr froh, wenn ihr mir helfen könntet.
Ach ja, das Betriebssystem ist Windows 7 x64 und es ist die aktuellste JVM installiert...
C:\Dokumente und Einstellungen\mnagler\Desktop>java -jar Test.jar
java.lang.NullPointerException
at de.javasoft.plaf.synthetica.StyleFactory.getStyle(StyleFactory.java:218)
at de.javasoft.plaf.synthetica.StyleFactory.getStyle(StyleFactory.java:188)
at javax.swing.plaf.synth.SynthLookAndFeel.getStyle(Unknown Source)
at javax.swing.plaf.synth.SynthLookAndFeel.updateStyle(Unknown Source)
at javax.swing.plaf.synth.SynthButtonUI.updateStyle(Unknown Source)
at javax.swing.plaf.synth.SynthButtonUI.installDefaults(Unknown Source)
at javax.swing.plaf.basic.BasicButtonUI.installUI(Unknown Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.AbstractButton.setUI(Unknown Source)
at javax.swing.JButton.updateUI(Unknown Source)
at javax.swing.AbstractButton.init(Unknown Source)
at javax.swing.JButton.<init>(Unknown Source)
at javax.swing.JButton.<init>(Unknown Source)
at de.javasoft.plaf.synthetica.SyntheticaLookAndFeel.installCompatibilityDefaults(SyntheticaLookAndFeel.java:900)
at de.javasoft.plaf.synthetica.SyntheticaLookAndFeel$4.propertyChange(SyntheticaLookAndFeel.java:557)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at javax.swing.event.SwingPropertyChangeSupport.firePropertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at javax.swing.UIManager.setLookAndFeel(Unknown Source)
at LanTools.main(LanTools.java:294)
Exception in thread "main" java.lang.NullPointerException
at de.javasoft.plaf.synthetica.StyleFactory.getStyle(StyleFactory.java:218)
at de.javasoft.plaf.synthetica.StyleFactory.getStyle(StyleFactory.java:188)
at javax.swing.plaf.synth.SynthLookAndFeel.getStyle(Unknown Source)
at javax.swing.plaf.synth.SynthLookAndFeel.updateStyle(Unknown Source)
at javax.swing.plaf.synth.SynthMenuBarUI.updateStyle(Unknown Source)
at javax.swing.plaf.synth.SynthMenuBarUI.installDefaults(Unknown Source)
at javax.swing.plaf.basic.BasicMenuBarUI.installUI(Unknown Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JMenuBar.setUI(Unknown Source)
at javax.swing.JMenuBar.updateUI(Unknown Source)
at javax.swing.JMenuBar.<init>(Unknown Source)
at LanTools.<init>(LanTools.java:47)
at LanTools.main(LanTools.java:298)
Ja, sieht so aus, als würde die entsprechende Bibliothek fehlen.
Wenn du das LAF gemeinsam mit deinem Programm in eine Jar-Datei packen willst, kannst du das mit dem FatJat-Plugin für Eclipse machen, oder auch per Hand, wie in der FAQ beschrieben.
Du kannst aber auch die Bibliotheken neben deinem Programm ausliefern.
Wo liegt denn die LAF-Bibliothek in deinem fertigen Projekt (außerhalb von Eclipse) ?
muss ja nicht unbedingt eine class sein - vll versucht er eine datei zu laden (zip, themepack oder was auch immer)... das endet meist in einer URL, die bei nicht finden null ist.
Du brauchst kein Fatjar, Eclipse hat die Funktion bereits build-in (Runnable Jar).
Aber vorsicht, dabei werden Bibliotheken entpackt und neu verpackt, je nach Bibliothek kann das Lizenzprobleme bedeuten.