Jar klappt nicht trotz main Methode

dehlen

Bekanntes Mitglied
Hey habe folgendes Programm geschrieben welches auch funktioniert :
Java:
import java.io.*;
public class Klasse
{

public static void main (String[]args) throws IOException {  
String text;
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Bitte Safari eingeben ");
text = input.readLine();

if (text.equals("Safari")) {

try 
        {
        String  command = "open /Applications/Safari.app";
        Process process  = Runtime.getRuntime().exec(command);  
        BufferedReader read= new BufferedReader (new InputStreamReader(process.getInputStream()));
        String s;
        while (( s=read.readLine())!=null)
        System.out.println(s);
        } 
        catch (IOException e1) 
        {
        // TODO Auto-generated catch block
            System.out.println(e1);
        }

}
}
}

wie ihr seht habe ich auch eine Main Methode aber wenn ich versuche das ganze als .jar zu speichern klappt das nicht wieso ?

Danke
 
Tja, bei so wenig Infos (wie hast du z.B. versucht es als jar zu speichern? Per Hand? Durch die IDE(wenn ja welche) etc,) kann man wohl kaum etwas sagen, außer dass bei mir das Speichern als jar klappt (siehe Anhang) 🙂
 

Anhänge

also ich habe es schon per Terminal,Eclipse und Bluej probiert .. das speichern an sich klappt bei mir auch nur leider sdas ausführen klappt nicht.
Ich bekomme immer folgenden Fehler:
Di Java-JAR Datei "Safari.jar" konnte nicht geöffnet werden.

Überprüfen Sie die Konsole auf mögliche Fehlermeldungen.
;(
 
Boah.....sag doch bitte immer was genau du machst !
Welches Kommando benutzt du beispielsweise zum Ausführen?
[c]java -jar Safari.jar[/c] ??! Sollte klappen, wenns mit deiner jar nicht klappt, meine obige mal versuchen.
Lasse dir doch nicht alles aus der Nase ziehen 😉
 
per Terminal habe ich folgendes versucht:
jar -cfv Safari.jar Klasse.class
und dann so ausgeführt:
java -jar Safari.jar


@eraaaa habe deine angehängte Date auch schon probiert und das klappt auch nicht
 
Ich habs per Terminal gespeichert mit "jar -cvmf manifest.txt Klasse.jar Klasse.class" geht ... und ausgeführt habe ich es mit "java -jar Klasse.jar" wobei er dann wenn ich Safari eingebe nen Fehler raus haut "java.io.IOException: Cannot "open": CreateProcess error=2, Das System kann die angegebene Datei nicht finden" 😀

Wenn du das genauso ausgeführt hast wie beschrieben, fehlt die manifest.txt 😉
 
Zuletzt bearbeitet:
hm hast du einen Mac oder Windows
weil wenn du Windows hat ist klar das er es nicht findet aber wenn ich es im Simulator ausführe klappt es bei mir und wenn ich deinen Befehl im Terminal eingebe bekomme ich dieses Zeichen : >
und dann tuts sich gar nichts mehr die .jat wird nicht erstellt etc
 
ja dann ist klar das der Safari nicht findet ;-) ok habe das Programm in BlueJ geschrieben das hat keine Manifest erstellt muss ich dann noch eine erstellen oder wird durch den Befehl die Manifest.txt erstellt ?! weil wenn ich das eingebe passiert wie gesagt gar nichts
 
Du musst die Datei erstellen. Der Inhalt ist bei mir einfach nur:

"Main-Class: Klasse"
(hier musst du einmal Enter machen und dann die Datei erst speichern)
 
könntest du mal bitte die .jar amhängen ?! =)
bei mir will das Terminal einfach nicht -.-
bzw den Projektordner das wäre echt genial
schonmal vielen Dank für die Hilfe ;-)
 
jaaaa =) so klappts ;-)

aber wieso klappt nicht wenn ich sie Doppelklicke :0

Edit:
Achso weil er wahrscheinlich dann kein Terminal oder Fenster hat wo ich was eingeben kann
anders könnte ich es mir nicht erklären
 
Es ist nichts Neues, dass Jar-Dateien mit javaw verknüpft sind. Das ist der Interpreter für Fenster-Programme, der im Gegensatz zum Interpreter java keine Konsolenausgaben macht.
Konsolenprogramme, die in einer Jar-Datei gepseichert sind, können zwar per Doppelklick gestartet werden, machen aber keine Ausgabe und müssen expilzit auf der Konsole gestartet werden - und zwar mit java.

Der Befehl wurde oben schon mehrmals aufgeführt:
Code:
java -jar DeinProgramm.jar
 
Es ist nichts Neues, dass Jar-Dateien mit javaw verknüpft sind. Das ist der Interpreter für Fenster-Programme, der im Gegensatz zum Interpreter java keine Konsolenausgaben macht.
Konsolenprogramme, die in einer Jar-Datei gepseichert sind, können zwar per Doppelklick gestartet werden, machen aber keine Ausgabe und müssen expilzit auf der Konsole gestartet werden - und zwar mit java.

Der Befehl wurde oben schon mehrmals aufgeführt:
Code:
java -jar DeinProgramm.jar

Ok danke für deine Antwort dann geht es eben nur mit Terminal 😉
Danke für alle Antworten und der Thread ist dann hiermit geschlossen
PS: Super schnelle und gute Antworten 😉 danke dafür
 

Neue Themen


Zurück
Oben