2016-11-24 25 views
0

こんにちは私はディレクトリを作成しようとしています。このコードは、OS X LionやCaptionのような他のOS X版では動作していますが、OS X 10.12(Sierra)では動作しません このコードがどのように機能するかをお勧めします。Runtime.getRuntime()。Mac OS X 10.12(Sierra)でexec(commandStr)が動作しません

proc=Runtime.getRuntime().exec(new String[]{"/bin/mkdir","/Volumes/Library"+count}); 
int exitCode = proc.waitFor(); 
System.out.println("Exit code : "+exitCode); 

と、このコマンドは端末で実行しかしRuntime.getRuntime()を使用して実行されていないドライブを

String[] commandArr = new String[]{"/sbin/mount","-t","smbfs","//username:[email protected]/library"," /Volumes/Library"+count}; 
proc = Runtime.getRuntime().exec(commandArr); 

を取り付ける。EXEC()。

助けてください。

+0

Javaプログラムを起動したユーザーにコマンドの実行権限があるかどうかを確認します。 ? –

+0

私はそれがターミナルでこれを実行することを示します。操作は許可されていません。そして、私はこれらのコマンドを "sudo"を使って試しました。それはターミナルで実行されますが、sudoを使ってjavaコードで実行されません。 – user1796116

+0

も参照してください。[Runtime.exec()ができない場合](http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html)プロセスの作成と処理に関するヒントそれを無視すると 'exec'が参照され、' ProcessBuilder'を使用してプロセスが作成されます。 –

答えて

0

ここで重要なことは、getRuntime()。execはあなたにフル・シェルを与えないことです。 シェルから行うことができるもの( "コマンドライン")だけを実行できると仮定することはできません。

ProcessBuilder.start()を試すことができます(Runtime.execのドキュメントで推奨されています)が、おそらく役に立ちません。

これを行うには、必要なものを実行するシェルスクリプトを作成し、Runtime.execまたはProcessBuilder.startを使用してスクリプトを実行し、適切なパラメータを渡します。

+0

シェルスクリプトを使って試しましたが、実行されていません。実際にMac-OSX Sierra 10.12バージョンで動作します。 exe()またはProcessBuilderです。プロセスビルドを使用することにより、他のアプリケーションのみが実行されます。 – user1796116

関連する問題