Zu den Aufzeichnungen der tutorials.de-Live-Workshops
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
566
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    flashray flashray ist offline Mitglied Rubin
    Registriert seit
    Sep 2005
    Ort
    Mannheim
    Beiträge
    1.325
    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
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken ProcessBuilder, src - bin?-projektverzeichnis.jpg  
     

  2. #2
    flashray flashray ist offline Mitglied Rubin
    Registriert seit
    Sep 2005
    Ort
    Mannheim
    Beiträge
    1.325
    Das Deployment in Java ist wirklich kompliziert !


    Vg Erdal
     

  3. #3
    limago limago ist offline Mitglied Brokat
    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ß
     

  4. #4
    flashray flashray ist offline Mitglied Rubin
    Registriert seit
    Sep 2005
    Ort
    Mannheim
    Beiträge
    1.325
    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
     

  5. #5
    flashray flashray ist offline Mitglied Rubin
    Registriert seit
    Sep 2005
    Ort
    Mannheim
    Beiträge
    1.325
    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

  1. Processbuilder mit timeout
    Von Stiffler66 im Forum Java Grundlagen
    Antworten: 5
    Letzter Beitrag: 05.02.10, 11:58
  2. ProcessBuilder
    Von IroNHeinZ im Forum Java Grundlagen
    Antworten: 7
    Letzter Beitrag: 20.12.09, 14:59
  3. ProcessBuilder entfernt "
    Von smathedark im Forum Java
    Antworten: 2
    Letzter Beitrag: 09.07.08, 12:35
  4. ProcessBuilder - Vista ?
    Von Ashaman im Forum Java
    Antworten: 9
    Letzter Beitrag: 18.05.08, 19:32
  5. Probleme mit Processbuilder
    Von Daelrik im Forum Java
    Antworten: 4
    Letzter Beitrag: 30.09.06, 15:54