2016-05-01 16 views
1

私はJavaから呼び出しようとしているシェルスクリプトを持っています。シェルスクリプトは含まれています。私は使用しています私のJavaコードでJavaで.shを実行する

cat /dev/tty.USB0 > file.txt 

Process p= Runtime.getRuntime().exec("/home/myname/Scrivania/capture.sh"); 

をしかし、それは動作しません。私はそれを期待どおりに動作する端末から実行します。

+1

[JavaコードからUnixシェルスクリプトを実行するには?](http://stackoverflow.com/questions/525212/how-to-run -unix-shell-script-from-java-code) –

答えて

2

実行可能ファイルではないため、.shスクリプトを直接実行することはできません。代わりに/bin/sh -c /home/myname/Scrivania/capture.shを実行する必要があります。

1

まず、JavaコードでOSベースの機能を操作するのは良いスタイルではありません。代わりに、私はあなたがシステム入出力ストリームだけで作業することをお勧めします。あなたのプログラムは、あなたのスクリプトの出力を処理する場合たとえば、あなたのような何かを行うことができます。

cat /dev/tty.USB0 > java YourMainClass 

をし、その後System.inを直接操作します。

プログラムがスクリプト出力コンシューマより複雑であっても、プログラムからすべてのOSベースの部品を削除するように書き換えることができます。これにより、コードがより安定して保守性に優れます。

0

あなたは何をしていますか?まあ、それはすべきです。

私の推測は間違っていると思われます。出力ファイル "file.txt"を間違った場所で探している可能性があります。

ここで少し実験

System.out.println("Output file - " + new File("file.txt")); 
Process p= Runtime.getRuntime().exec("/home/myname/Scrivania/capture.sh"); 

最初の行は、あなたのファイルを検索する方法を教えてくださいです。

P.S.もちろん、java.io.Fileをインポートすることを忘れないでください:)

関連する問題