Kann ich Java - Programme auch ohne Editor öffnen?

popelheinixd

Aktives Mitglied
Hallo,

ich habe für ein paar Verwandte einige kleine nützliche Java - Programme per JFrame (GUI) geschrieben [mit dem Java-Editor]. :D
Nun ist meine Frage, wie ich die Programme auf die PCs von meinen Verwandten bekomme. Also auf einen USB-Stick ziehen und rüber kopieren ist klar ;), aber wie starte ich diese dort? Müssen meine Verwandten ebenfalls JDK und Java-Editor besitzen? Müssen sie jedes Mal den Java-Editor öffnen, dann auf "Starte Applikation" [grüner Pfeil] (oder 'F9') klicken, um es benutzen zu können, oder geht es auch anders?
 
X

Xyz1

Gast
Du erstellst eine .jar, optional erstellst du mit obigen Tool eine .exe, danach kannst du die AWT/Swing-Anwendung mit Doppelklick starten.
 
X

Xyz1

Gast
@popelheinixd :
Ich bin ja nett, ich habe dir die Einzelnen schritte als kommentare hingeschrieben:
Java:
// javac Clazzi.java
// jar cvfe Clazzi.jar Clazzi Clazzi.class
// java -jar Clazzi.jar

public class Clazzi {
	public static void main(String[] args) {
		System.out.println("Meine ersten gehversuche");
	}
}
Dann brauchst du auf den Endgeräten nur noch java -jar Clazzi.jar aufrufen.
Anmerkung: Hatte gerade etwas Schwierigkeiten mit den Entry Point(s)... :(
 
X

Xyz1

Gast
Also
1. gibt es in Java-Editor eine Option Create Jar oder so?
2. könntest du alle relevanten Programmteile oder sogar das komplette Programm hier posten?
3. kannst du von der Kommandozeile (cmd.exe) java und javac (z.B. -version) aufrufen?
4. sagen dir Path-Variablen (Umgebungsvariablen) etwas?
5. wie ist dein Kenntnisstand so?
 

popelheinixd

Aktives Mitglied
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 05.01.2017
  * @author
  */

public class Netto extends JFrame {
  // Anfang Attribute
  private JRadioButton jRadioButton1 = new JRadioButton();
  private JRadioButton jRadioButton2 = new JRadioButton();
  private JLabel jLabel3 = new JLabel();
  private JLabel jLabel4 = new JLabel();
  private JTextField jTextField1 = new JTextField();
  private JTextField jTextField2 = new JTextField();
  private JLabel jLabel5 = new JLabel();
  private JLabel jLabel6 = new JLabel();
  private JRadioButton jRadioButton3 = new JRadioButton();
  private JRadioButton jRadioButton4 = new JRadioButton();
  private JButton jButton1 = new JButton();
  private JButton jButton2 = new JButton();
  // Ende Attribute
 
  public Netto(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 546;
    int frameHeight = 217;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten
   
    jRadioButton1.setBounds(16, 16, 60, 20);
    jRadioButton1.setText("Netto");
    jRadioButton1.setOpaque(false);
    cp.add(jRadioButton1);
    jRadioButton2.setBounds(160, 16, 60, 20);
    jRadioButton2.setText("Brutto");
    jRadioButton2.setOpaque(false);
    cp.add(jRadioButton2);
    jRadioButton3.setBounds(304, 72, 52, 20);
    jRadioButton3.setText("7%");
    jRadioButton3.setOpaque(false);
    cp.add(jRadioButton3);
    jRadioButton4.setBounds(304, 136, 60, 20);
    jRadioButton4.setText("19%");
    jRadioButton4.setOpaque(false);
    cp.add(jRadioButton4);
    /* Button Gruppe
    *
    *
    */
    ButtonGroup gruppe1 = new ButtonGroup();
    gruppe1.add(jRadioButton1);
    gruppe1.add(jRadioButton2);
    ButtonGroup gruppe2 = new ButtonGroup();
    gruppe2.add(jRadioButton3);
    gruppe2.add(jRadioButton4);
    /*
    *
    *
    */
    // jLabels
    jLabel3.setBounds(16, 72, 100, 20);
    jLabel3.setText("Betrag:");
    cp.add(jLabel3);
    jLabel4.setBounds(16, 136, 100, 20);
    jLabel4.setText("fälliger Betrag:");
    cp.add(jLabel4);
    jTextField1.setBounds(160, 72, 100, 20);
    cp.add(jTextField1);
    jTextField2.setBounds(160, 136, 100, 20);
    cp.add(jTextField2);
    jLabel5.setBounds(276, 72, 20, 20);
    jLabel5.setText("€");
    jLabel5.setFont(new Font("Arial", Font.BOLD, 16));
    cp.add(jLabel5);
    jLabel6.setBounds(276, 136, 20, 20);
    jLabel6.setText("€");
    jLabel6.setFont(new Font("Arial", Font.BOLD, 16));
    cp.add(jLabel6);
    jButton1.setBounds(376, 16, 153, 97);
    jButton1.setText("Berechnen");
    jButton1.setMargin(new Insets(2, 2, 2, 2));
    // jButtons
    jButton1.addActionListener (new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton1_ActionPerformed(evt);
      }
    });
    cp.add(jButton1);
    jButton2.setBounds(376, 136, 153, 33);
    jButton2.setText("Beenden");
    jButton2.setMargin(new Insets(2, 2, 2, 2));
    jButton2.addActionListener (new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton2_ActionPerformed(evt);
      }
    });
    cp.add(jButton2);
   
    // Ende Komponenten
   
    setVisible(true);
  } // end of public Netto
     
      // Anfang Methoden
     
  public static void main(String[] args) {
    new Netto("Netto");
  } // end of main
     
  public void jButton1_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    double betrag = Double.parseDouble(jTextField1.getText());
    Fachklasse objekt1 = new Fachklasse();
    {
      if (jRadioButton1.isSelected() && jRadioButton3.isSelected()) {
        double wert = objekt1.plus7(betrag);
        jTextField2.setText(Double.toString(wert)); 
      } else {
        if (jRadioButton1.isSelected() && jRadioButton4.isSelected()) {
          double wert = objekt1.plus19(betrag);
          jTextField2.setText(Double.toString(wert));
        } // end of if
        else {
          if (jRadioButton2.isSelected() && jRadioButton3.isSelected()) {
            double wert = objekt1.minus7(betrag);
            jTextField2.setText(Double.toString(wert));
          } // end of if
          else
          if (jRadioButton2.isSelected() && jRadioButton4.isSelected()) {
            double wert = objekt1.minus19(betrag);
            jTextField2.setText(Double.toString(wert));
          } // end of if
         
        } // end of if-else
      } // end of if-else
    } // end of if
  } // end of jButton1_ActionPerformed
     
     
  public void jButton2_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    System.exit(0);
  } // end of jButton2_ActionPerformed
     
      // Ende Methoden
} // end of class Netto

Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 06.01.2017
  * @author
  */

public class Fachklasse {
 
  // Anfang Attribute
  // Ende Attribute
 
  public Fachklasse() {
  }

  // Anfang Methoden
  public double plus7(double betrag) {
    double wert = betrag * 1.07;
    double ergbenis = Math.round(wert * 100.0) / 100.0;
    return ergbenis;
  }
  public double minus7(double betrag) {
    double wert = betrag / 1.07;
    double ergbenis = Math.round(wert * 100.0) / 100.0;
    return ergbenis;
  }
  public double plus19 (double betrag) {
    double wert = betrag * 1.19;
    double ergbenis = Math.round(wert * 100.0) / 100.0;
    return ergbenis;
  }
  public double minus19 (double betrag) {
    double wert = betrag / 1.19;
    double ergbenis = Math.round(wert * 100.0) / 100.0;
    return ergbenis;
  }
    // Ende Methoden
} // end of Fachklasse
 
X

Xyz1

Gast
Und was bringt mir jetzt das Tool?
Weitere Parameter und Optionen zum Einstellen (~ min./max. JRE), siehe zB hier:
l4j.PNG
Z. B. ist das für Computer gedacht, auf denen Java nicht proper installiert wurde.

Wie ich bereits meinte, das ist nur eine Option/Empfehlung.
Wenn du .jar bereits hast, dann reicht auch ein Doppelklick aus.
Und außerdem ist deine Frage damit AFAICS IIRC bereits beantwortet.
 

Schmetterhand

Aktives Mitglied
Ich würde das mit diesem "Launch4J" komplett weglassen, das bringt einen nur durcheinander.
Wenn beim Doppelklick einer ".jar"-Datei nichts passiert, würde ich in einer Kommandozeile/-konsole in deren Ordner gehen und von Hand "java -jar #Name#.jar" ausführen (wie bereits vom Wissenden beschrieben :)).
Auf dem PC deines Bekannten solltest Du außerdem noch schauen, daß eine möglichst neues Java sauber installiert ist (sonst einfach neu installieren).
 
X

Xyz1

Gast
Ja, das von @Schmetterhand fasst es gut zusammen.
Java sollte auf den PCs der Bekannten sauber installiert sein (ich setze mal ganz vorsichtig Konjunktiv II an der Stelle ;) ),
und wenn deine Programme eine "funktionierende" Oberfläche haben,
dann einfach Doppelklick auf die .jar.
Oder eben Konsole bei Konsolenausgabe mit: java -jar #Name#.jar.
Das ist eigentlich "übliche" Vorgehenweise.
 

Schmetterhand

Aktives Mitglied
Wie führe ich das mit dem Ordner und der Kommandozeile aus?
1. Kommandozeile starten.
2. Mit "cd Ordner/zum/Jar/" (cd heißt "Change Dircetory") zum gewünschten Ordner wechseln)
3. Wenn im Ordner angekommen (man kann mit dem Befehl "dir" prüfen, welche Dateien enthalten sind), einfach "java -jar #Name#.jar" ausführen.
Du solltest Dir außerdem mal die Grundlagen anschauen über Java und die Kommandozeile, z.B. http://www.thomas-krenn.com/de/wiki/Cmd-Befehle_unter_Windows und http://www.java-tutorial.org/java-grundlagen.html (die ersten paar Kapitel)http://[QUOTE="popelheinixd, post: ...://www.java-tutorial.org/java-grundlagen.html
Ich hoffe, daß das hilft.

Gruß, Schmetterhand
 
X

Xyz1

Gast
Hättest du Windows 10, hätte ich gesagt, gib mal, da wo Frag mich etwas steht, cmd ein :D

Du kannst auch im CWD bleiben (z. B. Desktop) und java -jar mit dem absoluten Pfad aufrufen.

Weiterhin Shift+Rechtsklick auf (z. B.) Ordner/Verzeichnis und "Eingabeaufforderung hier öffnen".

Ach - es gibt 100 Wege, das zu öffnen, 10 davon sind auch hier beschrieben:

http://www.howtogeek.com/235101/10-ways-to-open-the-command-prompt-in-windows-10/

Aber tröste dich bitte, jemand im 9./10. Semester, dem man gesagt hat, tipp mal das und das ein, wusste auch nicht Bescheid. Er ist deswegen nicht verwiesen worden oder so.
 

flopalko

Bekanntes Mitglied
Dieser Thread ist ja köstlich :D
Wenn du seit einem Jahr Java Programme entwickelst solltest du doch wissen, wie man diese ausführt.
Also nochmal, da was wichtiges vergessen wurde: Beim Erstellen der jar musst du darauf achten, dass die jar executable ist. Wenn du sie so erstellst, kannst du die Applikation einfach mit einem Doppelklick starten. Voraussetzung dafür ist aber, dass du ein GUI hast, da bei einer reinen Konsolenanwendung diese nicht sichtbar ist.
 
X

Xyz1

Gast
Und langsam dreht man sich im Kreis.
"Manche Programme funktionieren nicht",
ich vermute, vermutlich sind sie irgendwie fehlerhaft, aber das weiß ich nicht, kann ich ohne Glaskugel nicht beantworten. ^^

Also, ich habe die Vorgehensweise beschrieben und Links an die Hand gegeben - was soll ich noch machen?
 

Joose

Top Contributor
Dann führ diese JAR über die Konsole aus und kontrolliere ob vielleicht eine Exception fliegt.
Wie man eine JAR über die Konsole ausführt wurde dir hier schon gezeigt bzw. gibt es dazu haufenweise Hilfe auf Google
 

popelheinixd

Aktives Mitglied
Also ich habe mein komplettes Programm gelöscht (inklusive Ordner) und habe einen neuen Ordner angelegt und das Programm mit Hilfe des Java-Editor's neu geschrieben und mich (in Teilen) strikt nach der Anleitung dieses Videos gehalten:
Ok ich weiß jetzt wie ich ein Programm ohne den Editor finde, compiliere und öffne. Doch muss ich denn diese Routine immer wieder durchgehen? Für einen Laien dem ich dieses Programm schreiben würde, wäre es doch sehr komplex und fehleranfällig. Gibt es einen einfacheren Weg?
 

Harry Kane

Top Contributor
Doch muss ich denn diese Routine immer wieder durchgehen
Nein, eigentlich nicht.
Aber solange du nicht die Tipps befolgst, die du bekommst, sondern lieber solche Crashaktionen machst wie dein "Programm komplett löschen", musst du es wohl so machen.
Nochmal das wichtigste:
1. Die jar muss executable sein, d. h. sie muss ein Klasse haben, die eine statische methode
Code:
public static void main(String[] args)
besitzt. Ich gehe mal davon aus, dass diese Bedingung erfüllt ist.
2. Auf dem Rechner, auf dem die jar laufen sollen, muss eine Java korrekt installiert sein. Dann müssten jar-Dateien auch mit dem Programm java.exe oder javaw.exe verknüpft sein. Wenn das nicht der Fall ist, war deine o. g. Crashaktion für den ...
3. Wenn Bedingung 2. auch erfüllt ist, gibt es zwei Möglichkeiten:
a) Die jar läuft fehlerfrei oder
b) sie tut es nicht
Wenn b) der Fall ist, solltest du versuchen, die jar in der Konsole zu starten (cmd öffnen, zum Verzeichnis mit der jar navigieren, dann java -jar namederjar.jar eingeben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Erste Schritte Vieschiedene Java versionen für verschiedne Programme/Projekte Java Basics - Anfänger-Themen 3
D Java-Programme nur vom eigenem Pc ausführbar Java Basics - Anfänger-Themen 10
B Warum haben Java Programme ein anderes Design? Java Basics - Anfänger-Themen 5
H Sehr einfache Java-Programme Java Basics - Anfänger-Themen 24
Kenan89 Vorbereitungen für JSP und Java Programme Java Basics - Anfänger-Themen 2
S Verständnisprobleme wie Java Programme ablaufen Java Basics - Anfänger-Themen 6
P Suche Java Programme mit gutem/anfängertauglichem Quellcode Java Basics - Anfänger-Themen 8
F Warum werden nicht mehr Programme in Java geschrieben? Java Basics - Anfänger-Themen 27
B Wie entwirft man JAVA-Programme? Java Basics - Anfänger-Themen 10
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
B Java programme Vorschläge! Java Basics - Anfänger-Themen 13
R java-programme schneller laufen lassen Java Basics - Anfänger-Themen 41
K JAVA für online und offline Programme? Java Basics - Anfänger-Themen 7
N Kann keine Java-Programme mehr schreiben Java Basics - Anfänger-Themen 10
K Java Programme ausführen? Java Basics - Anfänger-Themen 8
G Kann mit Java Editor keine Programme schreiben Java Basics - Anfänger-Themen 5
H Textpad > Benutzer-Programme für Java Java Basics - Anfänger-Themen 2
C Mit Java auf laufende Programme zugreifen Java Basics - Anfänger-Themen 3
I Java-Programme starten nicht Java Basics - Anfänger-Themen 14
V Parameter an Java-Programme übergeben Java Basics - Anfänger-Themen 8
F Ausführbare Java-Programme erstellen Java Basics - Anfänger-Themen 9
7 Java Programme - Sicherheit Java Basics - Anfänger-Themen 26
B 2 Programme als 1 Java Programm einbinden Java Basics - Anfänger-Themen 15
G Java Programme nichtmehr-decompilierbar machen Java Basics - Anfänger-Themen 34
K aus Java Programme Jar.datei erstellen (eclipse) Java Basics - Anfänger-Themen 15
T Wie kann ich andere Programme in Java über ein Menü öffnen? Java Basics - Anfänger-Themen 12
K Kann keine Java Programme öffnen Java Basics - Anfänger-Themen 17
G Programme via java steuern Java Basics - Anfänger-Themen 5
K Java Programme ausführen Java Basics - Anfänger-Themen 8
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
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
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben