私はJavaアプリケーションをサーバー側システムとして配布しています。ランチャーを作成しようとしています(「write」はここでは少し誇張されていますが、基本的には単にWindowsのプロセスエクスプローラーで目的の名前を取得できるように、Java.exeファイルをコピーします。このexeは、アプリケーションファイルツリーのbin /ディレクトリにあります。
これで、ファイルツリーにjre /ディレクトリがあり、Java.exeが実際に常駐しています(Java環境で製品を出荷しています)。Java.exeを\ jre\jre1.6.0_21\binにあるランチャー、またはこのディレクトリに作成したコピー(この実行可能な 'Orange.exe'を呼び出す)を配置すると、問題なく動作します。ただし、 ' bin \ディレクトリにあるOrange.exe 'を実行すると、次のエラーが発生します。
Error: no 'server' JVM at 'C:\Program Files\Java\jre6\bin\server\jvm.dll'
私はここで何が起こっているのか理解していると思います-jreディレクトリにあるjvm.dllファイルのサーバーバージョンを使用したいと思います。問題は、アプリケーションパスのjre\jre1.6.0_21ディレクトリを検索しない理由がわかりません。 Java_HOME環境変数をこの場所に設定しました。システム全体で予期される別の場所にデフォルト設定されているようです。
これを変更して、アプリケーションが提供するJava=環境ディレクトリにあるように見えるようにする方法を知っている人はいますか?理想的には、これは環境変数になります。バッチファイル。
サーバーJVMを起動して実行するには、ちょっとしたコツがあります。
C:\Program Files\Java\jdk1.6.0\jre\bin\server
C:\Program Files\Java\jre1.6.0\bin
詳細については、公式の readme を参照してください。
私はちょうどこれと同じ問題をEclipseで苦労しており、上記の回答で示唆されているように、 JBoss サイトにはこの問題に関するスレッドがあり、上記の回答と同じことを言ってからファイルをコピーしますjreフォルダーへのjdk。
サーバーを作成するときにランタイムをjdkとして定義すると、これを回避する必要があることに気づきました。しかし、既存のサーバーを編集する方法は見つかりませんでした。
申し訳ありませんが、JREには通常、サーバーが付属していませんVM(クライアントVMのみ)。サーバーVMが本当に必要な場合は、JDKインストールを使用する必要があります。
サーバーVMを搭載したJREの Oracle Java for Developers Download ページを参照してください。
ここでも同じ問題がありましたが、私の場合、最近インストールしたJDKのJava_HOMEとPATHを適切に更新していませんでした。新しいJDKの場所に更新したところ、サーバーは正常に起動しました。
Java_HOMEパスをC:\Program Files (x86)\Java\jre1.8.0_131\bin
に設定することで同じ問題を解決しました
Windowsは、LIBPATH環境変数でDLLを探します。
そして、あなたの1.6.0_21がPATHの最初のどこかにあることを確認してください。