私は今、このことを実行するために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 つのテキスト ボックスでそれを行う方法を教えてくれませんか?