ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
566
566
EMPFEHLEN
-
Hallo,
möchte eine Starter-JAR für eine Applikation schreiben, die aus einem Server und zwei verschiedenen Clienten besteht. Der Anwender soll über eine einfache GUI aus, die Möglichkeit haben, den Server und die verschiedenen Clienten in beliebiger Anzahl zu starten. Weil die Heapgröße unter anderem eine Rolle spielt habe ich mir gedacht, ich starte jede Applikation sei es Server oder Client separat für sich mit einem ProcessBuilder.
In unserem Projektverzeichnis in Eclipse sind source und binär Dateien separat gehalten. Das Problem ist, das der ProcessBuilder die Class-Dateien nicht findet, und so auch die Applikationen nicht starten kann.
Wie kann ich den ProcessBuilder das beibringen.
Die Methode für das Starten des Servers sieht folgendermaßen aus:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
public void startServer() { int heapSize = 64; try { heapSize = Integer.valueOf(serverHeapField.getText()); } catch (Exception e) { this.showErrorDialog(); } ProcessBuilder builder = new ProcessBuilder("java", "-Xmx" + heapSize + "m", "net/server/GameServer"); try { Process p = builder.start(); Scanner scanner = new Scanner(p.getErrorStream()); System.out.println(scanner.nextLine()); } catch (IOException e) { e.printStackTrace(); } }
Die Ausgabe:
Code :1
java.lang.NoClassDefFoundError: net/server/GameServer
Bei der Auslieferung des Projektes möchte das Projektverzeichnis mit der Starter-JAR als Zip weitergeben. Es sollen sowohl source als auch binär-Dateien darin enthalten sein.
Vg Erdal
-
Das Deployment in Java ist wirklich kompliziert
!
Vg Erdal
-
04.06.07 16:26 #3
- Registriert seit
- May 2007
- Ort
- Riedstadt (Hessen)
- Beiträge
- 354
Habs nicht ausprobiert, aber zum Start der Anwendung gibt man in Java den vollständigen Klassenname mit.
java mypackage.Mainclass
falls sich die Mainclass in einem anderen Ordner (oder Jarfile) befindet, wird dieser per cp Schalter mitgegeben.
java -cp meinordner mypackage.Mainclass
Gruß
-
Hallo Limago,
deine Idee hat leider auch nicht funktioniert.
Ich habe aber etwas anderes brauchbares entdeckt - Fatjar Plugin für eclipse.
Wenn man damit ein eclipse Projekt exportiert funktioniert alles auf Anhieb, sonst gab es immer Probleme mit Pfaden sämtlicher Ressourcen.
Das ist natürlich nicht direkt die Lösung zu meinem Problem. Hab dann bis auf weiteres die ProcessBuilder aus dem Starter entfernt. Starte einfach alle Clienten in der selben JVM. Das ist zwar nicht optimal, aber man kann nicht immer alles haben
!
Vg Erdal
-
Hallo,
das mit dem Fatjar hat doch nicht so ganz funktioniert. Ich habe mich getäuscht, weil ich die jar im Projektverzeichnis testweise gestartet hatte. Dort konnte sie natürlich auch auf die Ressourcen zugreifen.
An einem anderen Ort hat sie natürlich die Ressourcen nicht gefunden, weil sie nicht in das jar schaut bzw. findet.
Vg Erdal
Ähnliche Themen
-
Processbuilder mit timeout
Von Stiffler66 im Forum Java GrundlagenAntworten: 5Letzter Beitrag: 05.02.10, 11:58 -
ProcessBuilder
Von IroNHeinZ im Forum Java GrundlagenAntworten: 7Letzter Beitrag: 20.12.09, 14:59 -
ProcessBuilder entfernt "
Von smathedark im Forum JavaAntworten: 2Letzter Beitrag: 09.07.08, 12:35 -
ProcessBuilder - Vista ?
Von Ashaman im Forum JavaAntworten: 9Letzter Beitrag: 18.05.08, 19:32 -
Probleme mit Processbuilder
Von Daelrik im Forum JavaAntworten: 4Letzter Beitrag: 30.09.06, 15:54





Zitieren
Login




