2016-10-27 7 views
1

特定のフォルダにJavaからは(私は二重の私はそれを行うことができますことをチェックしました)私はどこにでも形成それを実行できるようにするためにコンパイルされ、パスに追加したCコードを持って

をシェルコマンドを実行します今は簡単な方法でGUIを使って作業したいと思っています。私はファイルと出力ディレクトリを入力するようにユーザーに頼みます。

p = Runtime.getRuntime().exec(command, null, new File(directory)); 

しかし、私はいつもこのエラーが出る:

String command = "myprogram -e " + file; 
new ExecuteShellInstruction().main(command,jTextOutputDirectory.getText()); 

が、私は他のクラスのコードを実行します。クリックボタンで

私はGUIからコマンドを実行するコードを置く

java.io.IOException: Cannot run program "myprogram" (in directory "/Users/user_name/Documents/folder/example"): error=2, No such file or directory 

私は、同じフォルダから同じものを正確に書き込むと問題はないことを確認しました。

多分私は何かが欠けてる、正しいものとしてマークされていた質問から、それをやって、このようにして得られたならば、私は?worngやっているの任意のアイデアが、私はすでに、物事と何をしようと1時間してきました動作するようです。

ありがとうございました!

+0

その明確に述べて@ShreyasSarvothamaははい、そういえ現在の作業ディレクトリ –

+0

内のファイルを見つけることができません。しかし、私が言及したように、シェルから直接そのディレクトリでそれを行うと、それは完璧に動作します。 – nck

+0

あなたのjavaコードはどこから作業していますか?まずディレクトリを設定してから実行します。シェルのデフォルトディレクトリは異なりますjava作業ディレクトリが異なる –

答えて

1

は最後に、私は解決策を見つけました。 最初に「./」を追加することでアプリケーションを実行できることを伝える必要があるようです。このような何か:

String command = "./myprogram -e " + file; 
+0

'String []'を受け入れるオーバーロードを使用してください。そうしないと、スペースでファイル名を処理できなくなります。 –

+0

ありがとう、正確にどこを指定できますか?文字列[]コマンド? – nck

+0

@nck:['Runtime'](https://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html)を参照してください。 [ProcessBuilder]も参照してください。[こちら](http://stackoverflow.com/a/20603012/230513)。私はそのあなたのリンクでの方法でそれを行うにしようとしましたが、私は多くの問題「で、今だようにそれはそう – trashgod

関連する問題

 関連する問題