.java Datei in java Datei ausführen

SteW

Mitglied
Hallo zusammen,
Ich habe hier ein Programm geschrieben, welches versuchen soll ein Spiel zu starten. Ist dies jedoch aus irgendeinem Grund nicht möglich, soll "FehlerBeimStart.java" gestartet werden, wie krieg ich das hin?
Java:
import java.io.IOException;

public class Start{
  
    public static void main (String [] args) {    
        boolean success = true;
        try {
            Runtime.getRuntime().exec("\"C:\\Riot Games\\League of Legends\\lol.launcher.exe\"");
        } catch (IOException e) {
            success = false;
        }
        if (success) {
            /*Hier soll nun "FehlerBeimStart.java gestartet werden*/
        }
    }
}
 
Zuletzt bearbeitet von einem Moderator:
Was soll deine Klasse "FehlerBeimStart" denn machen?
Eine Java-Klasse ist ein Bauplan für ein Objekt. Du solltest also ein Objekt dieser Klasse erstellen und von diesem Objekt kannst du dann die gewünschten Methoden aufrufen.

Anmerkung: "FehlerBeimStart" ist schlechter Name für eine Klasse 😉
 
Und nutze bitte die Java-Tags:
entweder über das Icon "Einfügen..." im Editor (links neben dem Disketten-Icon)
oder direkt: [code=Java]...myMagnificentCode...[/code]

So bekjommt man ja Augenkrebs ...
 
Ich bin ziemlich neu in der OOP, kann aber mal meinen "Bauplan schicken", vielleicht könntest du mir das an diesem Beispiel zeigen wie ich ein Objekt dieser Klasse erstelle.

Was wäre denn ein "guter" Name für die Klasse. Wäre nett wenn du mir auch erklären könntest warum ein solcher Name "schlecht" ist. Danke 🙂
 
Java:
import javax.swing.*;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Color;

public class FehlerBeimStart extends JFrame implements ActionListener{ 
    private static final long serialVersionUID = 1L;
 
    private JFrame f = new JFrame();
    private JButton Button1 = new JButton();
    private JButton Button2 = new JButton();
    private JLabel Beschriftung1 = new JLabel();
 
        FehlerBeimStart(){
            f.setTitle("Fehlerbehandlung");
            f.setSize(620, 400);
            f.setVisible(true);
            f.getContentPane().setBackground(new Color(255, 255, 255));
         
         
            f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
         
            f.setLayout( new GridLayout( 0, 1) );
         
         
            Beschriftung1.setText("Beim Start des Programms ist ein Fehler aufgetreten, bitte wählen Sie eine der folgenden Methoden aus:");
            f.add(Beschriftung1);
         
            Button1.setText("Spieldateien auf Fehler überprüfen");
            f.add(Button1);
            Button1.addActionListener(this);
         
            Button2.setText("Beenden");
            f.add(Button2);
            Button2.addActionListener(this);
        }
      
public static void main(String[] args) { 
    new FehlerBeimStart();
}
     
public void actionPerformed(ActionEvent ae) {
        if(ae.getSource() == this.Button1){
                /* Hier wird Methode zur Überprüfung der Dateien gestartet*/
            }
        if(ae.getSource() == this.Button2){
                System.exit( 0 );
            }         
        }
}

ok habs raus, bin ganze neu in dem Forum, deshalb danke für den Tipp...
 
Zuletzt bearbeitet von einem Moderator:
Setz dein Code bitte noch in Tags:
Code:
[code=java] ...deinCode... [/code ]

Versuch mal eine Verknüpfung der lol.launcher.exe an deinen Desktop zu senden, und navigiere dorthin, denn du darfst so weit ich weis keine Lehrzeichen in dem Pfad haben.

Schreib deinen gewünschten Pfad als Path und setz den dann passend ein 🙂

PS: ich bin leider momentan nicht zuhause und kann somit nicht nachschauen, wie jetzt so das Optimum ist.
Eigentlich lässt sich das aber auch sinnvoll ergoogeln 😉

EDIT: ah sorry zu langsam 😀
 
Also bei einem kleinen Test zuvor konnte die exe Datei trotz Leerzeichen im Pfad gestartet werden, also sollte dies doch hoffentlich kein Problem sein. Von path habe ich bisher noch nicht gehört, doch werde schnell danach googlen 🙂
 
Was wäre denn ein "guter" Name für die Klasse. Wäre nett wenn du mir auch erklären könntest warum ein solcher Name "schlecht" ist. Danke 🙂

Dazu müsste man wissen was die Klasse machen solle bzw. was ihre Zuständigkeit ist.
Anhand des Codes den du dann gepostet hast würde ich die Klasse einfach "ErrorWindow" nennen. Damit erkenne ich anhand des Namens schon das ich hier ein neues Fenster erstelle um eine Fehlermeldung anzuzeigen.

"FehlerBeimStart": Gut die Klasse hat was mit einem Fehler zu tun bei Start. Erzeugt diese Klasse den Fehler? Schickt sie Fehlerbericht an dich/Microsoft/NSA?

Es ist schon klar das du als Entwickler selber vielleicht weißt was die Klasse macht und wozu sie dient. Aber wenn sich jemand anderes mal mit dem Code beschäftigen muss (bzw. du nach sehr langer Zeit wieder drauf schaust) sollte dann einfach zu erkennen sein anhand von Namen was da gemacht wird.
 

Zurück
Oben