web-dev-qa-db-de.com

Keine 'Server' JVM unter '...'

Ich verwende eine Java-Anwendung, die wir als serverseitiges System vertreiben. Ich versuche, einen Launcher zu schreiben ("Schreiben" ist hier etwas übertrieben, ich kopiere im Grunde nur die Java.exe-Datei, damit wir im Prozess-Explorer von Windows den gewünschten Namen erhalten können). Dieses Exe befindet sich in unserem bin/-Verzeichnis unseres Anwendungsdateibaums. 

Jetzt haben wir auch ein Verzeichnis jre/in unserem Dateibaum, in dem sich Java.exe tatsächlich befindet (wir versenden unser Produkt mit der Java-Umgebung). Wenn ich Java.exe als Launcher verwende, der sich in\jre\jre1.6.0_21\bin befindet, oder wenn ich die Kopie platziere (nennen Sie diese ausführbare 'Orange.exe'), die ich in diesem Verzeichnis erstellt habe, funktioniert das problemlos . Wenn ich jedoch meine 'Orange.exe' in das bin\-Verzeichnis stecke, erhalte ich die folgende Fehlermeldung:

Error: no 'server' JVM at 'C:\Program Files\Java\jre6\bin\server\jvm.dll'

Ich glaube, ich verstehe, was hier passiert - ich möchte die Serverversion der Datei jvm.dll verwenden, die sich in unserem Verzeichnis jre befindet. Das Problem ist, ich verstehe nicht, warum es nicht im Verzeichnis jre\jre1.6.0_21 in meinem Anwendungspfad aussieht. Ich habe meine Java_HOME-Umgebungsvariable auf diesen Speicherort gesetzt. Es scheint, als wäre es standardmäßig an einem anderen, systemweit erwarteten Ort. 

Weiß jemand, wie ich das ändern kann, damit es in meinem von der Anwendung bereitgestellten Java-Umgebungsverzeichnis aussieht? Im Idealfall handelt es sich hierbei um eine Umgebungsvariable, da ich diese Anwendung mit Parametern mithilfe einer Batchdatei aufrufen muss.

22
jwir3

Es gibt einen kleinen Trick, um die Server-JVM zum Laufen zu bringen:

  1. Kopieren Sie den Ordner "Server" aus dem Ordnerordner des JDK-Ordners JRE: C:\Program Files\Java\jdk1.6.0\jre\bin\server
  2. Fügen Sie den Ordner "Server" in das Bin-Ordner-Beispiel von JRE ein: C:\Program Files\Java\jre1.6.0\bin
  3. Erledigt

Siehe offizielle readme für Details.

41
indago

Ich habe gerade mit dem gleichen Problem in Eclipse gekämpft und festgestellt, dass die JBoss - Site, wie in der obigen Antwort vorgeschlagen, einen Thread zu diesem Thema hat, der dasselbe wie die Antwort oben zum Kopieren von Dateien aus dem Jdk in die JRE-Ordner.

Mir ist aufgefallen, dass Sie dies vermeiden müssen, wenn Sie die Laufzeit beim Erstellen des Servers als jdk definieren. Ich habe jedoch nicht gefunden, wie man einen vorhandenen Server bearbeitet.

Eclipse Screenshot

9

AFAIK, die JRE wird normalerweise nicht mit einem Server VM ausgeliefert (nur die Client-VM). Wenn Sie die Server-VM wirklich benötigen, müssen Sie die JDK-Installation verwenden.

Weitere Informationen zu JREs mit Server-VM finden Sie auf der Seite Oracle Java for Developers Download

5
jarnbjo

Ich hatte das gleiche Problem hier, aber in meinem Fall hatte ich Java_HOME und meinen PATH für mein kürzlich installiertes JDK nicht richtig aktualisiert .. Ich habe es gerade an meinem neuen JDK-Speicherort aktualisiert, und der Server wurde problemlos gestartet.

1
hbobenicio

Ich löste das gleiche Problem, indem ich den Java_HOME-Pfad auf C:\Program Files (x86)\Java\jre1.8.0_131\bin setzte. 

0
Aayushi

Windows sucht in der Umgebungsvariablen LIBPATH nach DLLs.

Und vergewissern Sie sich, dass Ihr 1.6.0_21 sich irgendwo in PATH befindet.

0