私はシェルスクリプトをjavaとcygwin。私はWindows XPでコードを実行しているときはうまく動作します。今私は上記のエラーが発生しているWindows 7で同じコードを実行しようとしています。このエラーoccurred.Iが、これを避けるためにどのようにcygwinの(PATH=.;c:\cygwin\bin)
のための私のパスを設定しているのはなぜjava.io.IOException:プログラム "sh"を実行できません(ディレクトリ "c: cygwin bin test"):CreateProcess error = 2.システムが指定されたファイルを見つけることができません
(java.io.IOException)java.io.IOException:
Cannot run program "sh" (in directory"c:\cygwin\bin\test"):
CreateProcess error=2.The system cannot find file specified
。
ProcessBuilder pb = new ProcessBuilder();
pb.directory(new File("C:\\cygwin\\bin\\Test\\"));
File shellfile = new File("app.sh");//File name with extension
System.out.println(shellfile.getCanonicalPath());
しかし、これは私のJavaプログラムにあるE:\NIRAJ\example\app.sh
という出力を与えています。私はパスにpb.directoryを設定しています。
を私はあまりわかりませんが、これは一歩先あなたを導く可能性があります:私はSystem.out.print(pb.directory());
をチェックすると
は、それは私が出力C:\cygwin\bin\Test
iを管理者権限で実行してみます。管理者権限でコマンドラインを起動し、コマンドラインからjavaを実行します(またはIDEで権限を起動してください) – Hurda
testはあなたのファイルまたはディレクトリですか? – Ved
@ testmer_1:テストは私のディレクトリです。このディレクトリ内にapp.shはシェルスクリプトファイル –