0

私は今、このことを実行するために4時間試みてきましたが、理由を理解せずになんとか実行できました:/

exeファイルへのパスを入力できる2つのテキストボックスを含むGUIを備えた非常に単純なJavaプログラムを作成しました。ボタンをクリックすると、このボックス内のテキストが読み取られ、対応するソフトウェアが実行されます。

これは、ディレクトリ ボックスに「C:\Program Files (x86)\thatsoftware\」と入力し、実行するファイルに「C:\Program Files (x86)\thatsoftware\run this.exe -arg」と入力すると機能するようです。箱:

Runtime.getRuntime().exec(txtFile.getText().toString(), null, new File(txtPath.getText().toString()));

ただし、ディレクトリ ボックスを 1 つだけ設定し、ファイルと引数を追加 (ハードコード) すると、機能しません。

String fileToRun=txtPath.getText().toString()+"run this.exe -arg";
Runtime.getRuntime().exec(fileToRun, null, new File(txtPath.getText().toString()));

ファイルを配列として渡すことも試みました:

String fileToRun[]={txtPath.getText().toString(),"run this.exe"," -arg"};
Runtime.getRuntime().exec(fileToRun, null, new File(txtPath.getText().toString()));

無駄に。プロセスビルダーとして実行しようとすると、同じ種類の問題がポップアップします。"file C:\Program Files (x86)\thatsoftware\ -arg" does not exist." のようなエラー メッセージが表示されます。引数は渡されますが、明らかにファイル名は渡されないため、非常に奇妙です。

ユーザーが文字列全体をテキストボックスに入力すると、なんとか実行できますが、コードに引数やファイル名を追加すると実行できません。誰か私にこれを説明して、たった 1 つのテキスト ボックスでそれを行う方法を教えてくれませんか?

4

3 に答える 3

0

少年は私はばかのように感じます... Java エラーは私を失望させましたが、問題は "run this.exe" の前にスラッシュがないことでした。

たくさんの恥...

于 2013-09-02T19:49:55.787 に答える