.jar dateien auf Suse ausführen?



  • Hi,
    wie startet man .jar Dateien auf Suse.
    Also Konsole is klar aber mit welchem Befehl???
    Oder kann mir jemand eine shell schreiben die Main.jar ausführt??? 🙄
    mfg
    DKing 😃



  • Mit java -jar JarDatei.jar führst du JAR Dateien aus. Java muss natürlich installiert sein.

    Als \1:

    #!/bin/sh
    java -jar Main.jar
    


  • Bei mir sagt er unable to execute. Ich hab das mit dem Java Launcher zur .jar Datei gemacht. Wird das dadurch plattformabhängig, oder gibt es bestimmte befehle die nur unter Win vorhanden sind, der Code ist nicht von mir, aber damit wollte ich das Testen:

    import java.awt.*;
    import javax.swing.*;
    
    public class Main extends JFrame{
       private final JLabel label = new JLabel(); //label zur Ausgabe
       public static void main(String[] args){ //main
          new Main(); //erzeugen eines neuen Objekts der Main-Klasse
       }
       public Main(){
          //Bildschirmauflösung bestimmen und speichern
          Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
          setSize(screenSize); //JFrame auf Auflösungsgröße setzen
          label.setText("bla..."); //Text auf label setzen
          add(label); //label dem JFrame hinzufügen
          setVisible(true); //JFrame sichtbar machen
       }
    }
    

    unter Win32 leuft alles super.
    mfg
    DKing



  • *hust* 😃



  • Was genau und wo sagt der denn: "unable to execute"?



  • wenn ich in der Konsole das oben erwähnt eintippe.
    Der Pfad ist auf jeden richtig, ich gehe mit der Konsole in den Ordner wo die .jar Datei liegt und tippe java -jar Main.jar ein=> Dann kommt die Meldung.



  • Welche VM hast du denn installiert? Wie ich eben in einem anderen Thread gesehen habe, scheinen nicht alle Distributoren die VM von Sun einzusetzten. Da könnte es dann sein, dass du andere Argumente angeben müsstest, um JAR Dateien zu öffnen.

    DKing schrieb:

    Ich hab das mit dem Java Launcher zur .jar Datei gemacht. Wird das dadurch plattformabhängig, oder gibt es bestimmte befehle die nur unter Win vorhanden sind [...]

    Normalerweise sind schon die .class Dateien Plattformunabhängig.



  • Ich nutzt Suse 9.2 ohne was ohn der VM gedreht zu haben.



  • Ah ich hab den Fehler, es liegt am Code. Unter Win32 funzt der alerdings will Linux anstadt:

    Main.add()
    

    ->

    Main.getContentPane().add()
    

    also im Grunde eine genauere Angabe. Jetzt gehts 🙂
    Linux und Win32 einwandfrei, aber nun ein neues Problem. Die Konsole unter Linux gibt mir noch volgende Warnung, wie krieg ich die weg:
    Warning: Cannot convert string "-b&h-lucida-medium-r-normal-sans--140---p--iso8859-1" to type FontStruct
    die Meldung sagt mir zwar sehr genau wo der Fehler liegt, aber wie ich ihn wegkriegen kann is mir nich schleierhaft 😕 .

    Unter Windows hab ich noch ein kleines anderes Problem, und zwar wenn ich auf X drücke um die Anwendung zu killen, killt er sie nicht, den im TaskManager unter Prozesse wird der Prozess noch angezeicht. Starte ich die Anwendung erneut laufen zwei im Hintergrund, usw... . Klar kann ich den Prozess einfach killen über den Manager aber das ist nicht der Sinn der Sache 😉
    mfg
    DKing



  • DKing schrieb:

    und zwar wenn ich auf X drücke um die Anwendung zu killen, killt er sie nicht,

    Du meinst du siehst die App nicht mehr, aber sie läuft noch im Hintergrund?
    Es gibt da min. 2 Möglichkeiten deine App kalt zu machen:

    Das hier wäre der WindowListener für den Konstruktor:

    addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent evt) {
            setVisible(false);
            System.exit(0);
        }
    });
    

    Und hier, auch im Konstuktor, mit der JFrame Methode:

    setDefaultCloseOperation(EXIT_ON_CLOSE);
    

    Bye



  • Ähhm ja, da hat wohl einer schnell 'nen Beispielcode hingeschludert ... Bitte sag mir nicht das wird noch verkauft 😃



  • HeHe 😃👍



  • Naja weis den jetzt jemand wie man:
    Warning: Cannot convert string "-b&h-lucida-medium-r-normal-sans--140---p--iso8859-1" to type FontStruct

    ...loswird???
    Nun ja unter Win ist er ruhig wie ein Grab. Unter Linux sagt er halt das
    😞

    Naja es ist zwar nur ne Warnung, aber ich will wenn dann etwas ordentlich haben^^.
    Hab den Code mal nen bisl abgeändert:

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    public class MainSource extends JFrame{
    public static void main(String Argumente[])
    {
    		   //Font
    	Font Textart=new Font("serif", 0, 24);
    		   //Bereich
    	JLabel Bereich1 = new JLabel("Java, love it or leave it :)");
    		   Bereich1.setForeground(Color.blue);
    		   Bereich1.setFont(Textart);
    
    		   //Fenster
    	JFrame Fenster = new JFrame();
    		   Fenster.setSize(640,480);
    	       Fenster.getContentPane().add(Bereich1);
    	       Fenster.setVisible(true);
    	       Fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    		   //Eventhandler
    		   Bereich1.addMouseListener( new MouseAdapter() {
    		          public void mouseClicked( MouseEvent e ) {
    		            if ( e.getClickCount() > 0 )
    		              System.exit( 0 );
    		          }
    		        } );
    }
    }
    

    Werde später noch ne schönere Klasse fürs Fenster ergänzen^^
    mfg DKing



  • *hust*



  • Ich denke, du solltest mal überprüfen, welche Java-Version du auf deinen Systemen hast. Ich gehe mal stark davon aus, dass du auf Linux die Version 1.4.2 hast (ist die, die SUSE 9.2 mitliefert) und auf Windows Java 5. Das würde zumindest das Symptom erklären, dass du in Windows

    Main.add()
    

    verwenden kannst (eine in Java 5 neu eingebaute, zu Frame.add() analoge Methode JFrame.add()), in Linux aber

    Main.getContentPane().add()
    

    benutzen musst, eben weil in 1.4.2 noch nicht die Methode JFrame.add() existiert.

    Ergo: Versionen auf deinen Betriebssystemen mittels "java -version" überprüfen und falls in Windows was mit "1.5.0xxx" und in Linux "1.4.2.xxx" o.Ä. steht, das Java 5 SDK ( http://java.sun.com/j2se/1.5.0/download.jsp ) herunterladen und auf Linux installieren ( http://www.linux-fuer-alle.de/doc_show.php?docid=190&catid=3 )



  • Danke für diesen Tipp!!! 🙂
    Ich denke das ich aber noch bis Montag warte, denn dann krieg ich von einem Freund Suse 9.3 auf nen DVD+DL Rohling gebrannt. Denke mal das dieses System ne neuere Java-Version hat.

    Das ist das was ich an Linux liebe -> es ist legal 😃 .

    mfg
    DKing

    PS: Werd dan schreiben obs geklappt hat 🙂


Anmelden zum Antworten