私はScalaで書かれたSwingアプリケーションを.jar
ファイルに持っています。私はデスクトップのショートカットをコマンドscala "filepath\filename.jar"
で作った。ただし、アプリケーションを終了するまではバックグラウンドで最初にコマンドウィンドウを表示する点が異なります。私はこれを遠ざけるようにしたい。コマンドウィンドウなしでWindows上でScala Swingアプリケーションを起動
私はこの目的でjava
の代わりにjavaw
を使用すると考えています。私は
if exist "%JAVA_HOME%\bin\javaw.exe" set "_JAVACMD=%JAVA_HOME%\bin\javaw.exe"
とライン28
if "%_JAVACMD%"=="" set _JAVACMD=javaw
に、私はまだ取得しています(デスクトップショートカットを更新した後)にライン24をへ
scalaw.bat
と呼ばれる新しいファイルに
scala.bat
ファイルをコピーし、変更してみましたコマンドウィンドウが表示されます。何か案は?
更新:パスがjarファイルのルートに対して相対的であるので、私は推測する、私はマニフェストにscala-library.jar
を追加しようとしたが、それは動作しません。他のオプションは、jarファイル(Creating a jar file from a Scala file)内のスカラーライブラリのjarファイル全体を含めるように思われますが、私はその解決策を考慮しません。
または私はその構成.class
ファイルにjarファイルを解凍し、jarファイルを開梱含まショートカット
javaw.exe -cp "%SCALA_HOME%/lib/scala-library.jar";"filepath\\" packageName.className
けど...を使用することができます。
私が見つけたもう一つの半回避策は、ショートカットを編集してコマンドウィンドウを最小限に抑えることです。
ソリューションは:eugenerの答えに従って、あなたは -jarオプションを指定せずにjavaw
を使用する必要がありますが、例えばのjarファイルを指定します
javaw -cp "%SCALA_HOME%/lib/*";"C:/path/yourjar.jar" packageName.className
それはSwingのアプリだと、あなたはあなたにもあることが含まれる、または上記のよう*
ワイルドカードを使用する必要がありますscala-swing
ライブラリを使用する場合。
しかし、 'jar'を起動している場合、クラスパスはすでにマニフェストになければなりませんか? –
マニフェストを使用するか、クラスパスを記述できるかは、より柔軟な-cpパラメータを使用します。IMO –
-cpと-jarの両方を使用する場合、-cp設定は無視されます。 –