tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
17
ZUGRIFFE
340
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    stan0043 stan0043 ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    9
    Hallo liebe Community,

    ich habe ein kleines Java Tool geschrieben, mit dem man mittels kleiner GUI KML-Dateien erzeugen kann. Bevor diese GUI geöffnet wird, gibt es noch einen kleinen Zusatzdialog, in dem nach Benutzernamen und Passwort gefragt wird.

    In der Entwicklungsumgebung funktioniert alles einwandfrei, auch beim Debuggen gibt es keine Fehlermeldung. Will ich aber die .jar mittels Doppelklick starten, geht zwar der Abfragedialog wegen Nutzer/Passwort auf, dann passiert aber nichts weiter.

    Ähnliches habe ich, wenn ich das Programm über die Konsole starte mittels java -jar Name.jar. Auch hier geht der Abfragedialog auf, dann kommt die Fehlermeldung:

    Exception in thread "main" java.lang.NullPointerException at .de.Main.<init>(Main.java:29) at de.Main.main.(Main.java:40)

    Das ist alles und bisher wurde ich leider nicht schlau daraus. Habe auch schon versucht, auf alle möglichen Arten die .jar zu erstellen, das bringt aber alles nichts. Ich benutze aktuell Java Eclipse 3.6.2.

    Vielleicht weiss jemand etwas darüber? Ich würd mich freuen!

    stan0043
     

  2. #2
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    Hi und Willkommen bei tutorials.de

    Zeig deine main.java.
    Sonst können iwr nur raten.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi stan0043 und Herzlich Willkommen bei Tutorials,

    wegen deinem Problem würde ich dir mal vorschlagen, dass du in deiner Main-Klasse mal in die Zeile 40 schaust. Weil genau das geht aus der Exception hervor, dass dort ein Wert 'null' ist, der nicht 'null' sein sollte.

    Gruß

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  4. #4
    stan0043 stan0043 ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    9
    Hallo sheel,

    hier mal der Code:

    package de;
    import java.awt.Dimension;
    import java.net.URL;

    import javax.swing.ImageIcon;
    import javax.swing.JFrame;


    public class Main extends JFrame {
    /**
    * Serial UID.
    */
    private static final long serialVersionUID = 7616005228338295773L;
    final static JFrame frame = new JFrame("JDialog Demo");

    /* login password */
    public static String log = "";


    public Main() {

    final MainPanel main = new MainPanel(log);
    setLayout(null);
    setContentPane(main.getComponent());

    setSize(310, 700);
    setMinimumSize(new Dimension(310, 700));
    setTitle("KML-Tool");
    setIconImage(getIcon("/de/icon/Mast.png").getImage());
    }

    public static void main(String args[]) {
    // (new Main()).setVisible(true);

    LoginDialog loginDlg = new LoginDialog(frame);
    loginDlg.setVisible(true);
    // if login successfully open main window
    if(loginDlg.isSucceeded()){
    log = loginDlg.getPassword();
    (new Main()).setVisible(true);
    }
    }


    /**
    * Gets an resource icon.
    *
    * @param pResource resource path
    * @return image icon, <code>null</code> if the resource is not found
    */
    public static ImageIcon getIcon(final String pResource) {
    URL url;
    if (pResource.charAt(0) == '#') {
    url = Main.class.getResource("/de/"
    + pResource.substring(1));
    } else {
    url = Main.class.getResource(pResource);
    }
    if (url != null) {
    return new ImageIcon(url);
    }
    return null;
    }
     

  5. #5
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    Bitte in Codetags [java]...[/java].
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  6. #6
    stan0043 stan0043 ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    9
    SORRY!

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    
    package de;
    import java.awt.Dimension;
    import java.net.URL;
     
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
     
     
    public class Main extends JFrame {
        /**
         * Serial UID.
         */
        private static final long serialVersionUID = 7616005228338295773L;
        final static JFrame frame = new JFrame("JDialog Demo");
     
        /* login password */
        public static String log = "";
     
        
        public Main() {
     
            final MainPanel main = new MainPanel(log);
            setLayout(null);
            setContentPane(main.getComponent());
     
            setSize(310, 700);
            setMinimumSize(new Dimension(310, 700));
            setTitle("KML-Tool");
            setIconImage(getIcon("/de/icon/Mast.png").getImage());
        }
     
        public static void main(String args[]) {
    //      (new Main()).setVisible(true);
     
            LoginDialog loginDlg = new LoginDialog(frame);
            loginDlg.setVisible(true);
            // if login successfully open main window
            if(loginDlg.isSucceeded()){
                log = loginDlg.getPassword();
                (new Main()).setVisible(true);
            }
        }
     
     
         /**
         * Gets an resource icon.
         *
         * @param pResource resource path
         * @return image icon, <code>null</code> if the resource is not found
         */
        public static ImageIcon getIcon(final String pResource) {
            URL url;
            if (pResource.charAt(0) == '#') {
                url = Main.class.getResource("/de/icon/"
                        + pResource.substring(1));
            } else {
                url = Main.class.getResource(pResource);
            }
            if (url != null) {
                return new ImageIcon(url);
            }
            return null;
        }
    }

    stan0043
     

  7. #7
    stan0043 stan0043 ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    9
    Es hängt jedenfalls mit dem Icon zusammen, das ich im MainWindow nutzen möchte. Kommentiere ich den Quellcode aus, funktioniert es. Habe auch eben in Funktion "getIcon" den Befehl:

    Code java:
    1
    
    url = Main.class.getResource("/de...

    um "/de/icon" erweitert, das ists aber leider auch nicht.
     

  8. #8
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    Ja dann ist ja alles Klar.
    Du kopierst das Programm aus dem Entwicklungsordner raus, dann wird das Bild nicht mehr gefunden.

    try-catch wäre Übrigens nicht verkehrt, auch wenn es trotzdem wieder ausgibt.

    Gruß

    PS: Das Bild ist doch ausserhalb des Jars, oder?
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  9. #9
    stan0043 stan0043 ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    9
    Hallo sheel,

    Das bild habe ich über Import/File System in das Package "de" geholt. Es liegt dort sowohl im Verzeichnis "bin/de/icon/" als auch im Ordner "src/de/icon". Deswegen hätt ich jetzt erwartet, dass das bild mit in die .jar exportiert wird. Falsch?
     

  10. #10
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    Kenn mich mit Eclipse nicht so wirklich aus.

    Aber das kann man einfach überprüfen:
    Die Jar sollte sich mit jedem Packprogramm wie eine Zip-Datei entpacken lassen.
    Schau einfach nach, ob das Bild drin ist.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  11. #11
    stan0043 stan0043 ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    9
    Hei!

    danke für den Tip mit dem entzippen.
    Das Bild liegt dort in de/icon/.... Lässt sich auch öffnen und sieht soweit richtig aus. Uff, schade.
     

  12. #12
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    Nicht aufgeben
    Ich hab mal irgendwo ein Beispiel geschrieben, zum Bild-aus-Jar laden.
    Ich glaube, da war das etwas anders.
    Muss es mal suchen, kann aber etwas dauern.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  13. #13
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi,

    versuchs doch mal so:

    Code java:
    1
    
    new ImageIcon(ClassLoader.getSystemResource("/de/icon/Mast.png")));

    Gruß

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  14. #14
    stan0043 stan0043 ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    9
    Hallo Fabio,

    habe ich versucht, das wirft mir nur leider eine Fehlermeldung raus:

    Code java:
    1
    2
    3
    4
    
    java.lang.NullPointerException
        at javax.swing.ImageIcon.<init>(ImageIcon.java:167)
        at de.Main.<init>(Main.java:29)
        at de.Main.main(Main.java:42)

    Mmmhh, jetzt debugge ich gerade fleissig vor mich hin, aber bin noch nicht schlauer.

    Habe einfach den Quellcode so eingesetzt:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
        public Main() {
     
            final MainPanel main = new MainPanel(log);
            setLayout(null);
            setContentPane(main.getComponent());
     
            setSize(310, 700);
            setMinimumSize(new Dimension(310, 700));
            setTitle("KML-Tool");
            new ImageIcon(ClassLoader.getSystemResource("/de/icon/Mast.PNG"));
    //      setIconImage(getIcon("/de/icon/Mast.png").getImage());
        }

    Merci, stan0043
     

  15. #15
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Du musst es wenn dann schon richtig einsetzen.

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
        public Main() {
     
            final MainPanel main = new MainPanel(log);
            setLayout(null);
            setContentPane(main.getComponent());
     
            setSize(310, 700);
            setMinimumSize(new Dimension(310, 700));
            setTitle("KML-Tool");
            setIconImage(new ImageIcon(ClassLoader.getSystemResource("/de/icon/Mast.PNG")));
    //      setIconImage(getIcon("/de/icon/Mast.png").getImage());
        }
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

Ähnliche Themen

  1. Java Dateien in einen runnable jar packen mit eclipse
    Von heizer_26 im Forum Java Grundlagen
    Antworten: 6
    Letzter Beitrag: 21.04.11, 16:09
  2. runnable jar file - could not find main class
    Von Moon93 im Forum Java Grundlagen
    Antworten: 12
    Letzter Beitrag: 19.11.10, 20:53
  3. Runnable Jar zeigt keine Konsole an
    Von Andyx1975 im Forum Java
    Antworten: 3
    Letzter Beitrag: 28.01.10, 13:14
  4. Antworten: 1
    Letzter Beitrag: 29.10.09, 14:57
  5. Threads: Runnable --> getId() ?
    Von Fulk im Forum Java
    Antworten: 2
    Letzter Beitrag: 29.04.09, 22:16