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:
importjava.io.IOException;publicclassStart{publicstaticvoid 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*/}}}
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]
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
importjavax.swing.*;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.Color;publicclassFehlerBeimStartextendsJFrameimplementsActionListener{privatestaticfinallong serialVersionUID =1L;privateJFrame f =newJFrame();privateJButtonButton1=newJButton();privateJButtonButton2=newJButton();privateJLabelBeschriftung1=newJLabel();FehlerBeimStart(){
f.setTitle("Fehlerbehandlung");
f.setSize(620,400);
f.setVisible(true);
f.getContentPane().setBackground(newColor(255,255,255));
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLayout(newGridLayout(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);}publicstaticvoidmain(String[] args){newFehlerBeimStart();}publicvoidactionPerformed(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...
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]
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
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
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.