Programmstart auf anderem Rechner...

Status
Nicht offen für weitere Antworten.

Xandro

Bekanntes Mitglied
Hallo...

Also ich habe vor, ein kleines Projekt in meiner Runde herumgehen zu lassen.
Ich habe mich informiert und gehört, dass man Java-Programme extern des JBuilders (nutze ich in meinem Fall)
zum Laufen bringen kann.
In der FAQ steht nur etwas von .exe-Dateien, aber die will ich nicht wirklich nutzen.
Ich habe von der Variante gehört, dass man eine Batch-Datei erzeugen kann,
diese im Verzeichnis speichert und mit dem Start dieser Batch-Datei auch mein gesamtes Programm
gestartet wird.

Mein Problem ist jetzt nur das WIE ...

Ich habe mal das Forum durchforstet aber irgendwie haben mich diese Erläuterungen nicht aufgeklärt.

Ich wäre für eine kleine Nachhilfe sehr dankbar :)

Gruss,
Xandro
 
B

bygones

Gast
warum erstellst du nicht einfach ein jar file ?
Unter windows kann man das ganz einfach anklicken und dein Programm startet....
Du kannst aber auch eine .batch Datei schreiben. Dies ist einfach eine Textdatei mit Shell kommandos. Also kannst du einfach "java MeinProgramm" reinschreiben und dann über doppelklick starten.

Jar ist aber besser !!
 

Xandro

Bekanntes Mitglied
hmm ... also jar-file also besser *grübel*

wusste gar net dass sich das einfach so unter windows starten lässt...
jetzt ist natürlich nur noch die frage wie ich so ein jar-file erstelle ???:L
 
B

bygones

Gast
wenn du JBuilder hast gibt es bestimmt einen Art "Export" Menueintrag... (ich kenn aber JBuilder nicht).

Ansonsten such hier mal im Forum (über Suche) - das wurde schon öfters behandelt !
 

Xandro

Bekanntes Mitglied
:roll:

imma dat gleiche *grml*

Der Befehl jar ist entweder falsch geschrieben oder konnte nicht gefunden werden.

Ich glaub ich lass es lieber *g*
 
B

bygones

Gast
kommt die meldung in der Konsole von Windows ?
Dann gib doch den absoluten Pfad an (z.b. C:\j2sdk1.4_03\bin\jar)
 

Xandro

Bekanntes Mitglied
najo ... ich hab mich mal schlau gemacht und es soweit hinbekommen ...

also jarfile erzeugt mit manifest-datei ...

nur das prob ist, egal welche klasse ich angebe, die main class wird nicht gefunden *grübelt*

und ich hab alle Klassen nacheinander ausprobiert, keine funzt ...

ich hab nur nen kleinen rechner geschrieben, um es zu testen ...

hier mal der code:

Taschenrechner.class

Code:
package tw;

import javax.swing.UIManager;
import java.awt.*;

/**
 * 

Überschrift: Mini-Rechner</p>
 * 

Beschreibung: </p>
 * 

Copyright: Copyright (c) 2004</p>
 * 

Organisation: </p>
 * @author Puni
 * @version 1.0
 */

public class Taschenrechner{
  boolean packFrame = false;

  //Die Anwendung konstruieren
  public Taschenrechner() {
    TWGUI frame = new TWGUI();
    //Frames überprüfen, die voreingestellte Größe haben
    //Frames packen, die nutzbare bevorzugte Größeninformationen enthalten, z.B. aus ihrem Layout
    if (packFrame) {
      frame.pack();
    }
    else {
      frame.validate();
    }
    //Das Fenster zentrieren
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if (frameSize.height > screenSize.height) {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width) {
      frameSize.width = screenSize.width;
    }
    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
    frame.setVisible(true);
  }
  //Main-Methode
  public static void main(String[] args) {
    try {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    new Taschenrechner();
  }
}

und TWGUI.class:

Code:
package tw;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.math.*;

/**
 * 

Überschrift: Mini-Rechner</p>
 * 

Beschreibung: </p>
 * 

Copyright: Copyright (c) 2004</p>
 * 

Organisation: </p>
 * @author Puni
 * @version 1.0
 */

public class TWGUI extends JFrame {
  JPanel contentPane;
  JLabel label_oben = new JLabel();
  JTextField txt_nummer_eins = new JTextField();
  JTextField txt_nummer_zwei = new JTextField();
  JButton button_plus = new JButton();
  JButton button_minus = new JButton();
  JButton button_mal = new JButton();
  JLabel label_ergebnis = new JLabel();
  JTextField txt_ergebnis = new JTextField();
  JButton button_exit = new JButton();

  //Den Frame konstruieren
  public TWGUI() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Initialisierung der Komponenten
  private void jbInit() throws Exception  {
    contentPane = (JPanel) this.getContentPane();
    txt_nummer_eins.setText("");
    txt_nummer_eins.setBounds(new Rectangle(21, 55, 157, 24));
    label_oben.setFont(new java.awt.Font("Monospaced", 1, 13));
    label_oben.setForeground(Color.blue);
    label_oben.setText("Mini-Taschenrechner");
    label_oben.setBounds(new Rectangle(23, 22, 156, 21));
    contentPane.setLayout(null);
    this.setLocale(java.util.Locale.getDefault());
    this.setSize(new Dimension(207, 305));
    this.setTitle("Taschenrechner");
    contentPane.setBackground(Color.lightGray);
    contentPane.setForeground(Color.black);
    txt_nummer_zwei.setBounds(new Rectangle(21, 112, 157, 24));
    txt_nummer_zwei.setText("jTextField1");
    txt_nummer_zwei.setText("");
    button_plus.setBounds(new Rectangle(21, 86, 48, 20));
    button_plus.setText("+");
    button_plus.addActionListener(new TWGUI_button_plus_actionAdapter(this));
    button_minus.setText("-");
    button_minus.addActionListener(new TWGUI_button_minus_actionAdapter(this));
    button_minus.setBounds(new Rectangle(75, 86, 48, 20));
    button_mal.setBounds(new Rectangle(131, 86, 48, 20));
    button_mal.setMnemonic('0');
    button_mal.setText("*");
    button_mal.addActionListener(new TWGUI_button_mal_actionAdapter(this));
    label_ergebnis.setFont(new java.awt.Font("Dialog", 1, 11));
    label_ergebnis.setHorizontalAlignment(SwingConstants.CENTER);
    label_ergebnis.setText("Ergebnis:");
    label_ergebnis.setBounds(new Rectangle(55, 149, 93, 20));
    txt_ergebnis.setBounds(new Rectangle(23, 181, 157, 24));
    txt_ergebnis.setEnabled(true);
    txt_ergebnis.setToolTipText("");
    txt_ergebnis.setEditable(false);
    txt_ergebnis.setText("");
    button_exit.setBounds(new Rectangle(55, 224, 93, 25));
    button_exit.setText("Exit");
    button_exit.addActionListener(new TWGUI_button_exit_actionAdapter(this));
    contentPane.add(label_oben, null);
    contentPane.add(txt_ergebnis, null);
    contentPane.add(label_ergebnis, null);
    contentPane.add(txt_nummer_zwei, null);
    contentPane.add(txt_nummer_eins, null);
    contentPane.add(button_plus, null);
    contentPane.add(button_minus, null);
    contentPane.add(button_mal, null);
    contentPane.add(button_exit, null);
  }
  //Überschrieben, so dass eine Beendigung beim Schließen des Fensters möglich ist.
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }

  void button_plus_actionPerformed(ActionEvent e) {
    String n1 = txt_nummer_eins.getText();
    String n2 = txt_nummer_zwei.getText();
    if(n1.equals("") || n2.equals("")){
      JOptionPane.showMessageDialog(null,"Geben Sie beide Zahlen ein!","Eingabefehler",JOptionPane.ERROR_MESSAGE);
    }
    else{
      try{
        double d1 = Double.parseDouble(n1);
        double d2 = Double.parseDouble(n2);
        double summe = d1 + d2;
        txt_ergebnis.setText(""+summe);
      }
      catch(Exception plus){
        JOptionPane.showMessageDialog(null,"Zahlen verdammt, nix anderes!","Fehler",JOptionPane.ERROR_MESSAGE);
      }
    }
  }

  void button_minus_actionPerformed(ActionEvent e) {
    String n1 = txt_nummer_eins.getText();
    String n2 = txt_nummer_zwei.getText();
    if(n1.equals("") || n2.equals("")){
      JOptionPane.showMessageDialog(null,"Geben Sie beide Zahlen ein!","Eingabefehler",JOptionPane.ERROR_MESSAGE);
    }
    else{
      try{
        double d1 = Double.parseDouble(n1);
        double d2 = Double.parseDouble(n2);
        double divident = d1 - d2;
        txt_ergebnis.setText(""+divident);
      }
      catch(Exception plus){
        JOptionPane.showMessageDialog(null,"Zahlen verdammt, nix anderes!","Fehler",JOptionPane.ERROR_MESSAGE);
      }
    }
  }

  void button_exit_actionPerformed(ActionEvent e) {
    System.exit(0);
  }

  void button_mal_actionPerformed(ActionEvent e) {
    String n1 = txt_nummer_eins.getText();
    String n2 = txt_nummer_zwei.getText();
    if(n1.equals("") || n2.equals("")){
      JOptionPane.showMessageDialog(null,"Geben Sie beide Zahlen ein!","Eingabefehler",JOptionPane.ERROR_MESSAGE);
    }
    else{
      try{
        double d1 = Double.parseDouble(n1);
        double d2 = Double.parseDouble(n2);
        double faktor = d1 * d2;
        txt_ergebnis.setText(""+faktor);
      }
      catch(Exception plus){
        JOptionPane.showMessageDialog(null,"Zahlen verdammt, nix anderes!","Fehler",JOptionPane.ERROR_MESSAGE);
      }
    }

  }
}

class TWGUI_button_plus_actionAdapter implements java.awt.event.ActionListener {
  TWGUI adaptee;

  TWGUI_button_plus_actionAdapter(TWGUI adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.button_plus_actionPerformed(e);
  }
}

class TWGUI_button_minus_actionAdapter implements java.awt.event.ActionListener {
  TWGUI adaptee;

  TWGUI_button_minus_actionAdapter(TWGUI adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.button_minus_actionPerformed(e);
  }
}

class TWGUI_button_exit_actionAdapter implements java.awt.event.ActionListener {
  TWGUI adaptee;

  TWGUI_button_exit_actionAdapter(TWGUI adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.button_exit_actionPerformed(e);
  }
}

class TWGUI_button_mal_actionAdapter implements java.awt.event.ActionListener {
  TWGUI adaptee;

  TWGUI_button_mal_actionAdapter(TWGUI adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.button_mal_actionPerformed(e);
  }
}

Ich denke mal für das jarfile brauch ich die Taschenrechner.class,
gebe also Main-Class: Taschenrechner [ENTER] in die Manifest-Datei ein und erstelle das jarfile.

Aba immer die gleiche Fehlermeldung :(
 

Illuvatar

Top Contributor
Die Fehlermeldung bedeutet, dass das Programm jar nicht gefunden wurde.
D.h. die PATH-Umgebungsvariable ist falsch gesetzt, sie muss auf dein bin-Verzeichnis zeigen.
 

Xandro

Bekanntes Mitglied
ähm ... jar muss gefunden werden,
da ich doch mit jar das jarfile erstellen kann,
somit auch der pfad für die umgebungsvariable korrekt sein muss ...

und ich hab es ja auch eigenhändig in den umgebungsvariablen verändert.

[EDIT]

also die komplette fehlermeldung lautet:

could not find the main class. program will exit.
 
R

Roar

Gast
wenn da steht die klasse wurde nicht gefunden dann wurde sie auch nicht gefunden. guck in die manifest datei, guck ob die pfade in der jar-datei richtig sind usw. guck ob alle vom programm benötigten dateien im jar drin sind.
versuche mal die jar datei von der konsole aus zu starten: java -jar jarfile.jar. kommt ne exception?
 

Xandro

Bekanntes Mitglied
nur mal so:

pfade innerhalb einer .jar-datei? wie genau meinsten das?

und ja es kommt eine exception wenn ich die konsole anspreche.
java.lang.NoClassDefFoundError ...

mein programm besteht aus diesen beiden hauptklassen *siehe quellcode voriges posting*,
ansonsten nur noch die button-klassen ...

mehr muss ich doch nicht mit in das jarfile packen oder doch?
 
R

Roar

Gast
ne jar datei is fast genau das gleiche wie ne Zip-Datei. guck ob die pfade stimmen. ob die klassen auc halle im root verzeichnis des jars sind und nicht in irgendwelchen unterverzeichnissen.
 

Xandro

Bekanntes Mitglied
so also die klassen sind alle im haupt/root-verzeichnis,
die manifest.txt mit drin natürlich ...

vielleicht liegts ja auch nur am konsolenbefehl:

jar cvfm Taschenrechner.jar manifest.txt *.class

das gebe ich zum erstellen des files ein.

die manifestdatei besteht ja nur aus:

Main-Class: Taschenrechner //da Taschenrechner.class ja die main-methode beinhaltet wie oben zu sehen ist.

*narf* aba das will net ???:L
 

Xandro

Bekanntes Mitglied
jop ... dein file klappt auch bei mir ...

ich weiss echt nicht was ich falsch mache *grübel*

naja ich versuch mich noch nen paar mal dran ...

danke dir vielmals
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
R Benutzereingaben als Array abspeichern nach Programmstart Java Basics - Anfänger-Themen 5
D JTButton ist nicht sichtbar bei Programmstart! Java Basics - Anfänger-Themen 4
D Umgebungsvariable Pfad javaw.exe für Programmstart auf Windows Java Basics - Anfänger-Themen 1
F Ladebalken beim Programmstart Java Basics - Anfänger-Themen 11
E Datenbankserver bei Programmstart starten Java Basics - Anfänger-Themen 33
jgh Programmstart mit Java-Tasse Java Basics - Anfänger-Themen 13
R Popup Fenster bei Programmstart Java Basics - Anfänger-Themen 2
B Programmstart und Parameter/args Java Basics - Anfänger-Themen 4
C DB-Tabellen bei Programmstart erstellen Java Basics - Anfänger-Themen 3
H zustände speichern und beim erneuten programmstart zustände automatisch laden Java Basics - Anfänger-Themen 26
J Parameter bei Programmstart Java Basics - Anfänger-Themen 10
T Programmstart aus Kommandozeile funktioniert nicht. Java Basics - Anfänger-Themen 8
G Programmstart mit JAR File - keine DB-Verbindung Java Basics - Anfänger-Themen 2
C Umgebungsvariablen vor Programmstart ändern??? Java Basics - Anfänger-Themen 4
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 1
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 0
J Zugriff auf Variable in anderem Programm Java Basics - Anfänger-Themen 5
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
A Anzeige Fehler auf anderem Gerät Java Basics - Anfänger-Themen 1
F Werte in 2D-Array mit anderem 2D-Array überschreiben Java Basics - Anfänger-Themen 2
F Interface aus anderem Package nutzen Java Basics - Anfänger-Themen 10
Ananaskirsche Methoden Auf Methode in anderem Package zugreifen Java Basics - Anfänger-Themen 3
D Eine Stelle eines Char- Arrays nach dem vorkommen in einem ganzem anderem Array überprüfen Java Basics - Anfänger-Themen 20
Z Objekt aus anderem Objekt aufrufen ? Java Basics - Anfänger-Themen 2
B JPanel über anderem JPanel Java Basics - Anfänger-Themen 6
S Bild eines JLabels mit anderem Bild überlagern - Problem nach Fenster-Minimierung Java Basics - Anfänger-Themen 5
E JFrame durch Button in anderem JFrame öffnen Java Basics - Anfänger-Themen 2
L Datei aus Java in anderem Programm öffnen Java Basics - Anfänger-Themen 23
S Zugriff auf Variable in anderem Thread Java Basics - Anfänger-Themen 6
M JLabel-Text in anderem Tab ändern Java Basics - Anfänger-Themen 5
F Objekt aus anderem Objekt erzeugen Java Basics - Anfänger-Themen 6
G ressourcen in anderem Package Java Basics - Anfänger-Themen 9
T Möchte ein neues Objekt erzeugen mit Wert von anderem Objekt Java Basics - Anfänger-Themen 9
G Reflection - Klasse laden aus anderem Verzeichnis Java Basics - Anfänger-Themen 4
H Jar-Archiv aus anderem Jar-Archiv aufrufen? Java Basics - Anfänger-Themen 3
D class-Datei in anderem Ordner Java Basics - Anfänger-Themen 6
G auf werte aus anderem frame zugreifen Java Basics - Anfänger-Themen 4
L Class-Datei auf anderem Rechner Java Basics - Anfänger-Themen 9
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
Renjiroo Java Bmi Rechner mit Methoden Java Basics - Anfänger-Themen 4
T BMI Rechner fehlerhaft Java Basics - Anfänger-Themen 18
D Primzahlen Rechner nach Eratostenes von Kyrene Algorithmus Java Basics - Anfänger-Themen 2
Animal-Mother BMI Rechner erstellen für W/M Java Basics - Anfänger-Themen 7
Alan6 Java Editor BMI Rechner Java Basics - Anfänger-Themen 7
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2
M Rechner programmieren Java Basics - Anfänger-Themen 3
Z BMI-Rechner Java Basics - Anfänger-Themen 1
F Trinkgeld Rechner und Promillenrechener Hilfe Java Basics - Anfänger-Themen 3
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
S Erste Schritte Java GUI - Rechner erstellen Java Basics - Anfänger-Themen 4
$ Multiplikations-Rechner mit while Schleife Java Basics - Anfänger-Themen 8
J double_Problem im ZinsesZins Rechner Java Basics - Anfänger-Themen 33
K (Taschen)Rechner Java Basics - Anfänger-Themen 8
M Abitur-Noten-Rechner Java Basics - Anfänger-Themen 2
G Welche Java-Version auf meinem Rechner? Java Basics - Anfänger-Themen 2
B Strategy Pattern - Rechner Java Basics - Anfänger-Themen 6
N Einfacher Rechner (für mich nicht so einfach) Java Basics - Anfänger-Themen 5
thet1983 rechner anfaengerfehler? Java Basics - Anfänger-Themen 10
B BMI Rechner Java Basics - Anfänger-Themen 2
H DriveByZero Exception - BMI-Rechner Java Basics - Anfänger-Themen 12
B Co2 rechner hilfe beim programmieren Java Basics - Anfänger-Themen 10
P Bitte um hilfe bei einfachem Rechner Java Basics - Anfänger-Themen 7
B Std-Serialisierung - Speichern/Laden geht nur auf einem Rechner Java Basics - Anfänger-Themen 17
C Rechner Java Basics - Anfänger-Themen 19
B Verbindung zu einen anderen Rechner Java Basics - Anfänger-Themen 2
N Datenaustausch zweier rechner Java Basics - Anfänger-Themen 4
M BMI-Rechner NumberFormatException Java Basics - Anfänger-Themen 30
Jats Kosinussatz-Rechner Java Basics - Anfänger-Themen 9
Haave Postfix-Rechner: mehrere math. Operationen nacheinander ausführen Java Basics - Anfänger-Themen 8
C Bmi rechner programmieren Java Basics - Anfänger-Themen 72
B JavaWebStart - Anwendung läuft nur auf einem Rechner Java Basics - Anfänger-Themen 6
P Einfacher Rechner Java Basics - Anfänger-Themen 2
P UPN Rechner Java Basics - Anfänger-Themen 1
F Upn-Rechner Java Basics - Anfänger-Themen 15
B mit Wecker den Rechner aus Standby/Ruhemodus holen Java Basics - Anfänger-Themen 19
R Jar Datei läuft auf neuem Rechner nicht mehr Java Basics - Anfänger-Themen 15
Developer_X Applet auf lokalem Rechner mit der EingabeAufforderung Starten Java Basics - Anfänger-Themen 44
S Was ist falsch an meinem Rechner? Java Basics - Anfänger-Themen 7
M externes Programm auf anderen Rechner ausführen lassen Java Basics - Anfänger-Themen 2
kulturfenster Wie implementiert man einen Rechner in Java? Java Basics - Anfänger-Themen 5
kulturfenster Rechner und ActionListener Java Basics - Anfänger-Themen 11
C DM -> Euro Rechner aber nur mit Operanden des Typs intege Java Basics - Anfänger-Themen 12
G Java Rechner Java Basics - Anfänger-Themen 10
G frage bluej für bmi rechner programmieren Java Basics - Anfänger-Themen 5
T Rechner-Name abfragen Java Basics - Anfänger-Themen 6
C Problem mit dem Rechner Java Basics - Anfänger-Themen 4
G Rechner aus ! Java Basics - Anfänger-Themen 5
M Exel-Rechner in Java ausgeben Java Basics - Anfänger-Themen 13
N Java Rechner Java Basics - Anfänger-Themen 3
D Java Rechner und Einlesen Problem (mit hasNext) Java Basics - Anfänger-Themen 2
W Rechner von quadratzahlen ! fehler Java Basics - Anfänger-Themen 4
P Rechner ^^ Java Basics - Anfänger-Themen 10
K BMI Rechner - wo ist der Fehler? Java Basics - Anfänger-Themen 4
D Rechner programmieren Java Basics - Anfänger-Themen 5
P Mediacenter Userinterface auf langsamem Rechner Java Basics - Anfänger-Themen 5
M Windows Projekt auf Linux Rechner Java Basics - Anfänger-Themen 2
B komische NumberFormatException beim DezimalToBinär-Rechner Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben