2017-01-28 6 views
-1

私のプログラムでは、実行中にexeファイルを実行する必要があります。私はProcessBuilderでやっています。私はディレクトリとexeの名前だけをコードに入れているとき、プロセスは正常に実行されているが、私は引数を入れたい。私がそれをしようとしているとき、私はAcces Deniedメッセージで例外を取得しています。 それは私のコードです:引数でプロセスを実行しているときにJava 8 Accesが拒否されました

Process process = new ProcessBuilder("C:\\Directory", "file.exe", argument1).start(); 

何が問題なのですか?働いたが、引数なしだった

私の以前のコード、:

String folder = "C:\\Directory"; 
String exe = "File.exe"; 
ProcessBuilder pb = new ProcessBuilder(); 
pb.command(folder + exe); 
pb.start(); 

このコードでは、私はProcessManagerで起動プロセスを見ることができました。

+0

あなたはログを投稿することができますか?と[UACを無効にしよう](http://www.howtogeek.com/howto/windows-vista/disable-user-account-control-uac-the-easyway-on-windows-vista/) –

+0

それはない無効なUACで作業しています – Higu

答えて

1

あなたのコードはC:\\Directoryを実行しようとしていますが、これは許可されていません。実行ファイルのフルパスが、コンストラクタの最初の引数でなければなりません

、そう:

Process process = new ProcessBuilder("C:\\Directory\\file.exe", argument1).start(); 

これはC:\Directory\file.exeあなたが実行しようとしているプログラムであると仮定しています。

更新:あなたが持っているあなたの元のコードでは:

String folder = "C:\\Directory"; 
String exe = "File.exe"; 

ので、 'フォルダ+ exeファイルが' C:\DirectoryFile.exeあるので、あなたは、同等のコードは次のとおりです。

Process process = new ProcessBuilder("C:\\DirectoryFile.exe", argument1).start(); 
+0

このコードでは、このプロセスをProcessManagerで見つけることができません。私の以前のコードは以下の通りでした:ProcessBuilder pr = new ProcessBuilder(); pr.command(folder + exe); folderがexe.fileのないDirectoryで、exeがfile .exeだけだったとき。 – Higu

+0

しかし、この以前のコードは引数では機能しませんでした。 – Higu

+0

**正確に**あなたは実行しようとしていますか? –

関連する問題