2011-08-03 6 views
0

リモートシステムの/ tmpディレクトリにあるシェルスクリプト(details1.sh)(もちろん2台のシステムが接続されています)と対話しようとしています。 "/tmp/details1.shを" プログラムを実行することはできません:にjava.io.IOException:エラー= 2、そのようなファイルまたはディレクトリ私は「IOException冒険

しかし、私はこのexception-

にjava.io.IOExceptionを取得していますアクセス許可を777に変更しました。

しかし、私はこの問題を解決する方法を見つけることができません。

+1

「2つのシステムが接続されています」とはどういう意味ですか? IOExceptionは、 'details1.sh'がローカルの'/tmp'に見つかりません。リモートシステムのルート( '/')が '/ mount/remote_sys'にマウントされている場合は、'/mount/remote_sys/tmp/details1.sh'を実行する必要があります。 – jfg956

答えて

1

スクリプトをファイル名として実行して直接シェル(たとえば/bin/bash)を呼び出す必要があります。

EDIT:コメントごとに、このでも問題ありませんが、私が最初にやってみたいことは間違いありません。

別の編集:あなたは/tmp/details1.shを実行しようとしているように見えるが、あなたはそれがリモートシステムの/tmpディレクトリにだと言います。明らかに、/tmp/details1.shを実行しようとすると、ローカル/tmpディレクトリにあります...リモートシステムについてはどう思いますか?

+0

CとLinuxでは、stdlibの 'system'関数は'/bin/sh'を使ってコマンドを呼び出します。もちろん、Javaは 'Runtime.exec'を使ってコマンドを実行する方法に特有のものではありませんが、C言語と同じように期待しています。 – jfg956

+0

@jfgagne:どちらにも期待はしていません正直である...しかし私はそれが少なくとも試みる価値があると思う。 –

+0

@jfgagne Javaがsystem()を呼び出すという*証明はありません。実際にはexec()ファミリの1つを呼び出します。実際にsystem()と同じように。 – EJP

関連する問題