java
、、、javaw
の違いは何javaws
ですか?
Windowsでは、Javaのほとんどの使用はを使用して行われることがわかりましたjavaw
。
java
、、、javaw
の違いは何javaws
ですか?
Windowsでは、Javaのほとんどの使用はを使用して行われることがわかりましたjavaw
。
以下については、Javaツールのドキュメントを参照してください。
- この
java
ツールはJavaアプリケーションを起動します。これを行うには、Javaランタイム環境を起動し、指定されたクラスをロードして、そのクラスのmain
メソッドを呼び出します。- コマンドは、関連するコンソールウィンドウがないことを除いて、
javaw
と同じです。コマンドプロンプトウィンドウを表示したくない場合に使用します。java
javaw
javaw
javaws
コマンド、「JavaWebStartコマンド」この
javaws
コマンドは、Java Network Launching Protocol(JNLP)のリファレンス実装であるJavaWebStartを起動します。Java Web Startは、ネットワーク上でホストされているJavaアプリケーション/アプレットを起動します。
JNLPファイルが指定されている場合は、JNLPファイルで指定されjavaws
ているJavaアプリケーション/アプレットを起動します。ランチャーには、現在のリリースでサポートされている一連のオプションがあります
。javaws
ただし、オプションは将来のリリースで削除される可能性があります。
JDK 9リリースノート非推奨のAPI、機能、およびオプションも参照してください。
Java Deployment Technologiesは非推奨であり、将来のリリースで削除される予定です
。JavaアプレットおよびWebStart機能(Applet API、Javaプラグイン、Java Applet Viewer、JNLP、およびjavaws
ツールを含むJava Web Startを含む)はすべてJDKで非推奨になります。 9であり、将来のリリースで削除される予定です。
java:出力/エラーを表示するためのコンソールに関連付けられたJavaアプリケーションエグゼキュータ
javaw :( Javaウィンドウ)コンソールに関連付けられていないアプリケーションエグゼキュータ。したがって、出力/エラーは表示されません。出力/エラーをテキストファイルにサイレントにプッシュするために使用できます。これは主に、GUIベースのアプリケーションを起動するために使用されます。
javaws:(Java Web Start)分散型Webアプリケーションをダウンロードして実行します。この場合も、コンソールは関連付けられていません。
すべてがJREの一部であり、同じJVMを使用します。
java.exeはコンソールに関連付けられていますが、 javaw.exeにはそのような関連付けはありません。そのため、java.exeを実行すると、コマンドプロンプトウィンドウが自動的に開き、出力ストリームとエラーストリームが表示されます。
javawコマンドにjavaと同じですが、javawにコンソールウィンドウが関連付けられていない点が異なります。コマンドプロンプトウィンドウを表示したくない場合は、javawを使用してください。javawランチャーは、失敗した場合にエラー情報を示すウィンドウを表示します。
そして、javawsは、Java Web Startアプリケーション、アプレット、またはそのようなもののためのものだと思います。
出力リダイレクトが以下で機能することを確認しましたjavaw
:
javaw -cp ... mypath.MyClass ... arguments 1>log.txt 2>err.txt
つまり、JavaアプリケーションがSystem.outまたはSystem.errを介して何かを出力する場合、javaを使用する場合(なしw
)と同様に、それらのファイルに書き込まれます。特に起動java
時に、JREはエラー出力パイプに起動エラー(クラスが見つかりません)を書き込む場合があります。この点で、エラーについて知ることは不可欠です。javaw
が呼び出された場合は、どのような場合でもコンソールリダイレクトを使用することをお勧めします。
反対に使用する場合
start java .... 1>log.txt 2>err.txt
Windowsコンソールstart
コマンドでは、コンソール出力リダイレクトは。でも機能しません。java
javaw
javaw
その理由の説明: OSで内部プロセスを開き(java.lang.Processクラスを使用するのが適切)、既知の出力リダイレクトをこのプロセスに転送すると思います。コマンドラインでリダイレクトが指定されていない場合、リダイレクトされるものはなく、の内部開始プロセスにjavaw
はコンソール出力がありません。java.lang.Processの動作は似ています。仮想マシンは、この内部機能を使用する場合もありjavaw
ます。
'start'を使用すると、WindowsコンソールはWindowsが開始後にコマンドを実行するための新しいプロセスを作成しますが、残念ながら、このメカニズムは開始されたサブプロセスに特定のリダイレクトを使用しません。