問題タブ [javaw]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Jar名のワイルドカード
ウィンドウバッチファイルで1つのjdkコマンドを次のように実行しています:
しかし、2 週間ごとに新しいバージョンが登場し、古い jar は新しい jar に自動的に置き換えられるため、次のようなワイルドカードを使用することを考えていました。
を使用することを提案した多くの記事をオンラインで参照し、使用する場合は*
jar名を囲みます...それらのどれも機能しませんでした。""
*
java - java.exe は javaw.exe よりも高速です
休止状態 + Mysql/Sqlite を使用していくつかの Java ソフトウェアを作成しましたが、両方のランチャーを使用すると (データベースからの) フェッチ時間に大きな違いがあることに気付きました。
java.exe を使用してアプリケーションを起動すると、もちろんコンソールが表示されますが、アプリケーションは javaw.exe を使用する場合よりも高速です。
私のアプリケーションは Windows ベースのアプリケーションで、アプリケーションの起動時に java.exe でコンソールをロードしたくないので、javaw.exe を使用していますが、フェッチ時間が不足しています。
その問題の説明は何ですか?また、コンソールを起動せずに java.exe を使用してアプリケーションを起動する方法、または javaw.exe を使用して起動して同じパフォーマンスを得るにはどうすればよいですか?
前もって感謝します。
java - myProcess.getInputStream() が java.exe では機能するのに、javaw.exe では機能しないのはなぜですか?
Factorio ゲームのコマンド ライン ベースのヘッドレス サーバー用のラッパーを作成しています。私は ProcessBuilder を使用してサーバーの stdout を取得しており、rcon 接続 (長い話、stdin が機能していませんでした) を使用してサーバーと通信しています。jar をパッケージ化して物理サーバーで実行するところまで、ほぼ完成しました。これは、IDE (Intelij) から実行する代わりに jar を実行すると、サーバーからの出力が通過しないことに気付いたときです。さらにスヌーピングを行ったところ、プロセスから .getInputStream() を使用しているときは常に、プログラムがコンソール (java.exe) と一緒に起動された場合にのみサーバーの出力が送信され、プログラムの場合はまったく送信されないことがわかりました。それなしで起動されました(javaw.exe)。
cmd.exe で .getInputStream() をテストしましたが、java.exe と javaw.exe の両方で問題なく動作します。また、コードが IDE の外部で実行されたときに予期していなかったフローに従っているかどうかを確認しますが、入力を待っているが何も受信していないかのように read.readLine() でブロックされます。
プロセスはここで初期化されます。
その後、入力は GUI によって処理され、(サーバーが完全に初期化された後) rcon 経由で送信され、出力が読み取られ、GUI のフィードである JTextArea に出力されます。
アプリケーションは、IDE の場合や java.exe が使用されている場合と同様に、modload に関するすべての初期化テキスト、マッチメイキング サーバーへの接続など、サーバーの出力を出力しているはずです。代わりに、何も出力しませんが、プロセスは引き続き実行され、初期化が完了した後、サーバーはゲーム内で接続できます。
batch-file - 新しい javaw プロセスを開始するためのバッチ ファイルが期待どおりに動作しない
Windowsバッチファイルの作成は初めてです。次のバッチ ファイルを使用して、新しい javaw プロセスを開始し、バッチ ファイル内のコマンドの出力をログ ファイルにリダイレクトします。
正常に動作しており、バッチ ファイルを実行すると、出力がログ ファイルに正しくリダイレクトされ、javaw プロセスも新しいプロセス ID で開始されることがわかります。
バッチ ファイルの実行後にログ ファイルにリダイレクトされる出力を次に示します。
しかし、バッチ ファイルの実行後にログ ファイルを編集または削除しようとすると、ファイルが Java(TM) Platform SE バイナリで開かれているため、操作を完了できないと表示されます。
javaw プロセスを強制終了した後でのみ、ログ ファイルを編集または削除できます。
なぜこれが起こっているのか、これを修正する方法はわかりません。javaw プロセスが正常に開始されたら、ログ ファイルを編集または削除できるはずです。これは正しいです?
私のOSはWindows 10 Enterprise 64ビットです。