jar erstellen...

Gustl_Java

Aktives Mitglied
Hallo,

ich habe einen kleinen ClorReader geschrieben.
Alles in einer Klasse namens ColorReader.class bzw. ColoReader.java.
nun versuche ich schon sehr lange daraus eine .jar zu erstellen.

Zuerst habe ich es im cmd mit :"jar -cfv ColorReader.jar ColorReader.class" probiert.
Ausgabe: Manifest hinzugeügt.
Hinzufügen von: ColorReader ....
Jetzt will ich diese .jar per Doppelklick starten.
Fehlermeldung: "Failed to load Mani-Class manifest attribute from 'path'\ColorReader.jar"

Gut, dann habe ich im selben Verzeichnis eine MAINFEST.MF mit folgendem Inhalt erstellt:
Manifest-Version: 1.0
Main-Class: ColorReader
"hier die Leerzeile"

jar -cvfm ColorReader.jar MAINFEST.MF ColorReader.class
Ausgabe: Manifest hinzugeügt.
Hinzufügen von: ColorReader ....

Jetzt wenn ich sie per doppelklick starten will kommt die Fehlermeldung:
"Could not find the main class:ColorReader. Programm will exit."

Ich frage mich warum, da er ja eine main class hat... hmpf.

Hier der code von ColorReader(main class ganz unten):
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.*;
import java.lang.*;

public class ColorReader extends JFrame
{   public JLabel l_R;
    public JLabel l_G;
    public JLabel l_B;
    public JLabel l_hex;
    public JPanel p_right;
    public JPanel p_rgb;
    public JPanel p_hex;
    public JTextField tf_R;
    public JTextField tf_G;
    public JTextField tf_B;
    public JTextField tf_hex;
    public JPanel Farbe;
    
    private Robot robot;
    boolean klick;
    Color c;
    
    ColorReader()
    {   try
        {   robot = new Robot();
        } catch (AWTException e)
        {   e.printStackTrace();
        }
        klick = false;
        java.util.Timer timer = new java.util.Timer();
        timer.schedule  ( new My_Timer(), 1, 1 );
        
        this.setTitle("Color Reader");
        this.setLayout( new FlowLayout( FlowLayout.LEFT , 5 , 5 ) );
        
        //JLabels & JTextFields RGB
        l_R  = new JLabel("R:");
        tf_R = new JTextField("R",2);
        tf_R.setEditable(false);
        tf_R.addKeyListener(new Tastatur());
        
        l_G  = new JLabel("G:");
        tf_G = new JTextField("G",2);
        tf_G.setEditable(false);
        tf_G.addKeyListener(new Tastatur());
        
        l_B  = new JLabel("B:");
        tf_B = new JTextField("B",2);
        tf_B.setEditable(false);
        tf_B.addKeyListener(new Tastatur());
        
        //JLabel & TextField Hexwert
        l_hex  = new JLabel("Hex-Wert:");
        tf_hex = new JTextField("HEX",6);
        tf_hex.setEditable(false);
        tf_hex.addKeyListener(new Tastatur());
        
        //Farbepanel
        Farbe = new JPanel();
        Farbe.setPreferredSize(new Dimension(40,40));
        Border border = new BevelBorder( BevelBorder.RAISED );
        Farbe.setBorder( border );


        //Anordnung der Komponenten durch Panels
        p_rgb   = new JPanel();
        p_rgb.setLayout( new FlowLayout( FlowLayout.LEFT , 5 , 3 ) );
        p_rgb.add(l_R);
        p_rgb.add(tf_R);
        p_rgb.add(l_G);
        p_rgb.add(tf_G);
        p_rgb.add(l_B);
        p_rgb.add(tf_B);
        
        p_hex   = new JPanel();
        p_hex.setLayout( new FlowLayout( FlowLayout.LEFT , 7 , 3 ) );
        p_hex.add(l_hex);
        p_hex.add(tf_hex);
        
        p_right = new JPanel();
        p_right.setLayout( new GridLayout( 2, 1) );
        p_right.add(p_rgb);
        p_right.add(p_hex);
        
        //Einstellungen vom Frame
        this.add(Farbe);
        this.add(p_right);
        //this.setSize( 220 , 100 );
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.pack();
        this.addKeyListener(new Tastatur());
        this.setLocation( 200 , 200 );
        this.setVisible( true );
        this.setAlwaysOnTop( true );

    }
    
    //Bei Taste H (hold) wird die abfrage gestoppt
    class Tastatur implements KeyListener
    {   public void keyPressed(KeyEvent e)
        { if(e.getKeyCode() == KeyEvent.VK_H)
           if(klick)
              klick = false;
            else
              klick = true;

        }
        public void keyReleased(KeyEvent e) {}
        public void keyTyped(KeyEvent e)    {}
    }
    
    public class My_Timer extends TimerTask
    {   public void run()
        {   if(!klick)
            {
            PointerInfo pointerInfo = MouseInfo.getPointerInfo();
            Point point = pointerInfo.getLocation();
            
            if(robot != null)
            {   c = robot.getPixelColor((int)point.getX(),(int)point.getY());
            }

            Farbe.setBackground(c);

            tf_R.setText(String.valueOf( c.getRed() ));
            tf_G.setText(String.valueOf( c.getGreen() ));
            tf_B.setText(String.valueOf( c.getBlue() ));
            
            
            tf_hex.setText("#" + Integer.toHexString(c.getRed()).toUpperCase() + Integer.toHexString(c.getGreen()).toUpperCase() + Integer.toHexString(c.getBlue()).toUpperCase() );
            }
        }
    }

    public static void main( String[] args )
    {   new ColorReader();
    }
}

Hoffe mir kann einer weiterhelfen.
Gruß Gustl
 

Gustl_Java

Aktives Mitglied
Jetzt habe ich das ganze auf meinen Laptop mit XP probiert, wo sonst auch das erstellen der jar datei funktioniert.
Also, auf dem Laptop neue jar datei erstellt mit dem Befehl:
jar -cvfm ColorReader.jar MAINFEST.MF ColorReader.class

beim doppelklick auf diese passiert jetzt NIX...

Dann mit JavaEditor die .java geöffnet, kompiliert und gestartet...

Folgende Fehlermeldung:
Exception in thread "Timer-0" java.lang.NULLPointerException
at ColoreReader$My-Timer.run(ColorReader.java:126)
at java.util.TimerThread.meinLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)

Jetzt frag ich mich aber warum er auf meinen PC nicht solch ein Fehlermeldung bringt und dort alles funktioniert?

hmpf
 

mabuhay

Bekanntes Mitglied
Öffne dein .jar mal mit einem Archivmanager (WinZip oder so) und schau ob alles dort ist wo es sein soll. Du kannst sie auch mal in der Kommandozeile (java -jar DeineJar.jar) starten und schauen was passiert. Musst du denn JavaEditor verwenden? Ich kenne den Editor nicht, Eclipse hat aber noch sehr viele nützliche Funktionen und dort klappt bei mir der Export in eine .jar ohne Probleme. Gibt es beim JavaEditor keine export-Funktion?

Die "Exception in thread "Timer-0" java.lang.NULLPointerException" entsteht weil du den Timer startest, bevor du das Panel "Farbe" erstellst. Da kann es natürlich vorkommen dass der erste Timer-Tick und somit der Code in deiner run-Methode ausgeführt wird bevor das Panel existiert. Starte den Timer also erst gegen Ende deines Konstruktors wenn alle Gui-Komponenten und andere Objekte erstellt wurden.

mfg
 

Gustl_Java

Aktives Mitglied
Danke euch beiden, das mit dem Timer ist ja klar, habs aber leider nicht gesehn. thx :)

Jetzt hats auch mit der jar datei geklappt, zumindest auf dem Laptop, warum es am PC nicht hinhaut weiß ich aber leider nicht.

Gruß
 

U2nt

Bekanntes Mitglied
Kommt aufm PC immernoch die gleiche Fehlermeldung?
Mit was startest du JARs auf deinem PC? Sind die Startoptionen (Ordneroptionen) richtig gesetzt?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J JButton ArrayList erstellen und auf JLabel ausgeben. Java Basics - Anfänger-Themen 8
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J Packages erstellen Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
dcHost Java Kara Sensor erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
N 2D Array Summe erstellen Java Basics - Anfänger-Themen 6
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S Programm erstellen Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
T Countdown erstellen Java Basics - Anfänger-Themen 7
I ZIP File erstellen Java Basics - Anfänger-Themen 10
L Ordner in neuen erstellten Ordner erstellen Java Basics - Anfänger-Themen 12
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
B JaxB - Referenzen erstellen? Java Basics - Anfänger-Themen 2
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
E Classpath Datai erstellen Java Basics - Anfänger-Themen 3
B eine methode erstellen Java Basics - Anfänger-Themen 7
I Entity erstellen, die für API gedacht ist Java Basics - Anfänger-Themen 33
M Packages erstellen mit Java-Editor Java Basics - Anfänger-Themen 6
L FinanzApp erstellen Java Basics - Anfänger-Themen 1
J Junit4 Klasse erstellen Java Basics - Anfänger-Themen 5
B Warteschlange erstellen mit LinkedList ? Java Basics - Anfänger-Themen 6
Animal-Mother BMI Rechner erstellen für W/M Java Basics - Anfänger-Themen 7
F GSON file mit einer List erstellen Java Basics - Anfänger-Themen 2
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
J Java Queue mit default Werten erstellen Java Basics - Anfänger-Themen 4
JaVaN0oB Bruchklasse erstellen Java Basics - Anfänger-Themen 9
N Kreismuster auf Bestehendem Kreis erstellen Java Basics - Anfänger-Themen 10
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
F Adjunkte Matrix erstellen Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
T Startbildschirm für ein Spiel erstellen Java Basics - Anfänger-Themen 0
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
GermanPie Discord Text Channel erstellen? Java Basics - Anfänger-Themen 1
K Objektdiagramm erstellen Java Basics - Anfänger-Themen 3
C Wie kann ich Versionen eines Projektes in Eclipse erstellen? Java Basics - Anfänger-Themen 3
D Klassen Klassendiagramm richtig erstellen Java Basics - Anfänger-Themen 20
S Objekte indiziert erstellen Java Basics - Anfänger-Themen 27
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
B Methode für jede beliebe Entity erstellen Java Basics - Anfänger-Themen 7
E Filmsammlung erstellen Java Basics - Anfänger-Themen 6
B Eine Methode erstellen Java Basics - Anfänger-Themen 3
M Erstellen eines insets Objekts, GridBagLayout Java Basics - Anfänger-Themen 13
I ArrayList erstellen innerhalb einer Zeile? Java Basics - Anfänger-Themen 3
N String N-Gramme mit Stream erstellen Java Basics - Anfänger-Themen 7
K Quersumme erstellen Java Basics - Anfänger-Themen 7
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
D Input/Output Mehrzeiligen String aus Textdatei erstellen Java Basics - Anfänger-Themen 5
C Erstellen eines Widerstandsnetzwerks Java Basics - Anfänger-Themen 10
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
P Arrays "automatisch" erstellen lassen Java Basics - Anfänger-Themen 12
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
D Zusammenhängenden Graphen für Gleisnetz erstellen Java Basics - Anfänger-Themen 13
Y Unterschied zwischen WindowBuilder und herkömmlichen erstellen des GUI´s? Java Basics - Anfänger-Themen 9
M Writer für unterschiedliche Obj/inbt/double erstellen? Java Basics - Anfänger-Themen 1
Kirby.exe Generische Objekt Instanz erstellen Java Basics - Anfänger-Themen 14

Ähnliche Java Themen


Oben