問題タブ [processbuilder]

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.

0 投票する
0 に答える
292 参照

java - プロセスビルダーを使用して2つの異なるプロセスをマージできますか?

この質問は私の前の質問に関連しています。

Cygwinを使用してJavaでシェルスクリプトを実行する方法

コマンドを実行するときにエラーが発生したため。これに2つの異なるプロセスを使用できますか?

例えば:

プロセスp;

D:cygwin\bin\Test> 別のプロセス

プロセスp1;

にとって:sh app.sh AK-RD 02.20 D:\cygwin\bin\Test_files

2つをマージしたい。それは可能ですか?

cygwinとJavaを使用してシェルスクリプトを実行しようとしています。これを完全なコマンドとして使用したいのです。

D:cygwin\bin\Test>** *sh app.sh AK-RD 02.20 D:\cygwin\bin\Test_files*

だから私は2つの異なることをしたい-これら2つを1つのステップに組み合わせることができますか?

0 投票する
2 に答える
2929 参照

java - プロセス ビルダーを使用して 2 つの異なるコマンドを実行する方法

同じ質問をもう一度開いている場合は申し訳ありません。2 つのコマンドを実行したい

  1. D:\cygwin\bin\Test

  2. sh app.sh AK-RD 02.20 D:\cygwin\bin\Test_files

上記は、同じコマンド プロンプトで実行したい 2 つのコマンドです。つまり、D:\cygwin\bin\Testフォルダー内に移動し、同じプロンプトで次のコマンドを実行する必要があります。

sh app.sh AK-RD 02.20 D:\cygwin\bin\Test_files

コマンドは次のようになります。

コマンド:- D:\cygwin\bin\Test>sh app.sh AK-RD 02.20 D:\cygwin\bin\Test_files

Java のプロセス ビルダーを使用してこれを行う方法。または、これを行う他の方法はありますか。

probuilder.directoryコードを変更しても、これは役に立ちません。私は得ています

0 投票する
1 に答える
3484 参照

java - Java ProcessBuilderを使用して「echo」を実行しても、変数は補間されません(文字列「$ PATH」を出力します)

ターミナルで実行されているのと同じ出力をJavaProcessBuilderから取得することを目的として、PATH変数をエコーし​​たいと思いますecho $PATH。ただし、実行すると、実際$PATHにはPATH変数の値ではなく出力になります。ProcessBuilderが$をエスケープしているのではないかと思いますが、これを防ぐためのトリックはありますか?

これは、文字列「$PATH」を出力する私が話しているもののコードサンプルです。

いくつかの追加のコンテキスト:

sort単体テストの1つでコマンドが見つからないことをシミュレートしようとしています。私はこのハック/トリックを使用してPATHを変更し、結果を調べprocessBuilder.environment()て、プロセスに渡されるPATH変数がソートを見つけられないことを確認します(空の文字列とランダムパスを試しました)。シェルが何かおかしなことをしていて、破壊しようとしているPATHをバックアップしているかどうかを確認したいと思います。

0 投票する
2 に答える
6790 参照

java - JavaのProcessBuilderはコマンドを実行するためにどこを見ますか?

を使用してコマンドを実行する場合ProcessBuilder、そのコマンドを検索する場所をどのように認識しますか? このハック/トリックを使用して、PATH 変数 (を調べて確認processBuilder.environment()) を修正しました (空、作業ディレクトリなど) が、ProcessBuilder は引き続きソート、エコー、bash などを正常に実行できます。これはどうやってやっているのですか?

注: 私の特定の開発環境は OSX ですが、このコードは Red Hat Enterprise Linux でも実行されます。

0 投票する
2 に答える
1806 参照

java - プロセスビルダーでのコマンドの書き方

CygwinとJavaを使用してシェルスクリプトを実行しています。

パラメータをハードコーディングしているときに、スクリプトが実行されています。これらのパラメーターをテキスト ボックスの値に渡したいと思います。

これを行う方法。

ProcessBuilder pb =new ProcessBuilder(Arrays.toString(cmmd));

または、これを行う他の方法はありますか。

0 投票する
1 に答える
7030 参照

java - Java 5/6 で ProcessBuilder の出力をリダイレクトしますか?

Process / ProcessBuilder の出力をリダイレクトする方法を探していますか? Java 7 では次のように動作することがわかっています。

しかし、Java 5/6にも同じことが必要です...どんな助けも大歓迎です。

0 投票する
2 に答える
2488 参照

java - java.lang.Process からの出力の読み取り - 読み取るものがありません

LinuxトラフJavaで端末コマンドを実行しようとしていますが、inputStreamから入力を取得できません。

これは私のコードです

プロセスが実行され、すぐに端末が閉じられ、出力はキャッチされずに印刷されます。一方、不明なコマンドを作成する場合は、コマンドの使用方法に関するヒントがすべての行に表示されます。Windows cmdで発生したのと同じ問題。getRuntime.exec(cmd) メソッドを使用しようとしましたが、最後は同じです。

また、このようなプロセスとリーダー用に個別のスレッドを作成しようとしました

しかし、呼び出しスレッドなどの任意の組み合わせでは、まだ何も読むことができません。

コマンド「find /home -xdev -samefile file」を使用して、ファイルへのすべてのハードリンクを取得しようとしているので、もっと簡単な方法があるかもしれません。

0 投票する
0 に答える
1152 参照

java - ThreadPoolExecutor で Java を実行する Java ProcessBuilder が ubuntu で正しく動作しない

数日間アプリを実行した後、JVM クラッシュ レポートが /root フォルダーに作成されることがわかりました。ログ ファイルはこの情報で始まります。

以下の動作はUbuntuでのみ発生することがわかりました

Java バージョン "1.6.0_26" Java(TM) SE ランタイム環境 (ビルド 1.6.0_26-b03) Java HotSpot(TM) 64 ビット サーバー VM (ビルド 20.1-b02、混合モード) Linux ubuntu 2.6.32-36-server #79-Ubuntu SMP Tue Nov 8 22:44:38 UTC 2011 x86_64 GNU/Linux

ただし、Windows 7 Professional 32 ビットで実行される同じ jar は正しく動作します。

Java バージョン "1.6.0_22" Java(TM) SE ランタイム環境 (ビルド 1.6.0_22-b04) Java HotSpot(TM) クライアント VM (ビルド 17.1-b03、混合モード)

ThreadPoolExecutor を使用していくつかのオブジェクトを処理するマルチスレッド Java アプリ (APP1) があります。Linux でコマンド ラインから実行すると、期待どおりに動作します。ProcessBuilder.start次に、マルチスレッド アプリの実行に使用する別の Java アプリ (APP2) を作成しました。

ThreadPoolExecutorAPP2 を使用して APP1 を実行すると、一部のスレッドが古いデータで複数回再利用される場合に、APP1の動作が異なることがわかりました。私のコードは次のようなものです: App1:

myProcessorrunnable を実装しており、データはプライベート変数に格納されています。

myProcessorこれはクラスのコードです

ログ ファイルを確認すると、スレッド名が同じデータ ID で 2 回実行されていることがわかります。コマンド ラインから App1 を通常どおり実行すると、このようなことは決して起こりません。

誰かが以前にそのような行動に遭遇したことがありますか?

0 投票する
2 に答える
28434 参照

java - エラー:原因:java.io.IOException:CreateProcess error = 2、システムは指定されたファイルを見つけることができません。すべての実行可能ファイルに適用されます

私の目標は、私の要件の1つとしてJavaからSVNコマンドを実行することです。同じように、TortoiseSVNコマンドラインツールをすでにインストールしています。適切なパス「C:/ProgramFiles」/TortoiseSVN/bin」を環境の「Path」変数に追加しました。

上記の設定で、「svn --version」などを使用して、Windowsコマンドラインからsvnコマンドを実行できます。これは完全に正常に機能します。

同じことを実行するためにコードに戻ってきました。これにはprocessbuilderを使用しています。ただし、上記のエラーが発生します--java.io.IOException:プログラム "svn --version"を実行できません:CreateProcess error = 2、システムは指定されたファイルを見つけることができません。

私はすでに物事をフォローしようとしました、

  1. ProcessBuilder.environmentを使用して、PathとPATHの値を確認しました。パスは空ですが、PATHには「TortoiseSVN/bin」パスを含む必要なすべてのアプリケーションパスが構成されています。これにより、ProcessBuilderのパスに実行可能ファイルの場所がないという理論が明確になります。

  2. 実行中に、svn --versionだけでなく、完全なパス、つまり「C:/ProgramFiles/TortoiseSVN/bin/svn.exe」を指定しようとしました。それも同じエラーを出しました。

  3. 同じ例外で失敗した「java-version」のような他の実行可能ファイルに対して同じコードを試しました。

私は今、非常に基本的な何かが正しくないと感じています。でも、これを1日以上頭にぶつけてみましたが、何の手がかりも得られません。

もう1つ、Windows7ボックスでこれを実行しています。

以下は私が使用しているコードです、

ヒント/ポインタを楽しみにしています。

ありがとう、ヴィッキー

0 投票する
1 に答える
1589 参照

java - JavaCPP でコードをコンパイルすると例外が発生しますか?

http://code.google.com/p/javacpp/で LegacyLibrary の独自の例を実行しようとしています

サイトでのみ言及されている次のコマンドでコードをコンパイルしようとすると(基本的にjavacpp.jarでコードをコンパイルします)、次の例外が発生します

これに対する救済策は何ですか?