-2

//編集:私はこれをそのようにしたのかわかりませんが、パスとしてy.toString()を挿入する突き出しで動作します

:(

とにかくありがとう

ファイルを実行してパスを変数として入力しようとすると、機能せず、「アクセス拒否」エラーが発生し続けます。しかし、まったく同じ文字列をハードコーディングすると、プログラムは正常に起動します

File[] files = dir.listFiles();

for(File x : files){
    File[] childfiles = x.listFiles();
    for (File y: childfiles){


    if(y.toString().endsWith(".exe")){

        String fstring ="\"\\\"";
        String lstring ="\\\"\"";

       Process p = Runtime.getRuntime().exec(
                fstring+y.toString().replace("\\","/")+lstring;
                p.waitFor();

    }
}

ファイルパスを直接入力すると、execに挿入した文字列と同じように正常に機能します(正確に表示されます)。

4

1 に答える 1

0

「abc.exe」を実行していると仮定します。

fstring+abc.exe+lstringフォームによる"\"abc.exe\""と、に置き換えた後、に/形成され"/"abc.exe/""ます。これは実行への間違った入力です。

直接実行.exe

Process p = Runtime.getRuntime().exec(y.getName());
int responseCode = p.waitFor();
于 2012-08-07T18:35:27.770 に答える