2011-08-18 1 views
2

파일 형식을 다른 디렉토리로 이동하기 위해 다음 Java 코드를 사용한 다음 대상 디렉토리에서 파일을 실행했습니다. 내 코드는이 코드를 실행하는 동안 나는 다음과 같은 오류가있어이 코드를 실행하여 파일이 성공적으로 이동했다exe가 실행되지 않습니다

import java.awt.FlowLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.io.File; 
import java.io.IOException; 

import javax.swing.JButton; 
import javax.swing.JDialog; 
import javax.swing.JFileChooser; 
import javax.swing.JFrame; 


import org.apache.commons.io.FileUtils; 
public class JFileChooserTest { 
    public static void main(String[] args) { 
     String filelocation="C:\\Users\\FSSD\\Desktop\\OutPut\\Target"; 
     File trgDir = new File(filelocation); 
     System.err 
       .println("file location>>>>>>>>>>>>>>>>>>>" 
         + filelocation); 
     File desDir = new File(
       "C:\\Users\\FSSD\\IndigoWorkSpace\\Swing\\test"); 

     try { 
      FileUtils.copyDirectory(trgDir, desDir); 
      // FileUtils.copyDirectory(srcDir, trgDir); 
     } catch (IOException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 

     Runtime rt=Runtime.getRuntime(); 
     try { 
      Process p=rt.exec("test\\setup.exe"); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 

입니다.

java.io.IOException: Cannot run program "test\setup.exe": CreateProcess error=740, The requested operation requires elevation 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460) 
    at java.lang.Runtime.exec(Runtime.java:593) 
    at java.lang.Runtime.exec(Runtime.java:431) 
    at java.lang.Runtime.exec(Runtime.java:328) 
    at JFileChooserTest.main(JFileChooserTest.java:34) 
Caused by: java.io.IOException: CreateProcess error=740, The requested operation requires elevation 
    at java.lang.ProcessImpl.create(Native Method) 
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:81) 
    at java.lang.ProcessImpl.start(ProcessImpl.java:30) 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:453) 
    ... 4 more 

여기에 내가 "SETUP.EXE"을 사용했다. 실행 파일입니다. 실행 중에 나는 위의 오류가 발생했습니다. 왜 그런 일이 벌어지면 해결할 수 있습니다. 미리 감사드립니다.

+2

이 실행 파일을 실행하려면 관리자 권한이 필요하며 Java 응용 프로그램을 실행할 수있는 관리자 권한으로 실행해야합니다. –

+0

Windows 7/Vista 및 UAC? – Matten

+0

@ Maurício Linhares : 코드를 통해 관리자 권한을 부여 할 수 있다면 Windows 7을 사용하고 있습니다. – Aerrow

답변

3

Windows 7을 사용하고있는 것으로 추측합니다. JFileChooser 테스트를 시작하기 위해 배치 프로세스를 실행할 때 마우스 오른쪽 버튼을 클릭하고 "관리자 권한으로 실행"을 선택하십시오.

+0

나중에 Windows 7을 사용하고 있습니다. , 코드를 통해 관리자 권한을 부여 할 수 있다면 가능합니다. 여기서는 런타임에 "setup.exe"를 실행합니다. 이 작업을 수행 할 수있는 다른 방법이있는 경우 – Aerrow

+1

코드로는이 작업을 수행 할 수 없지만 다른 배치 프로세스를 실행하고/runas 명령을 사용하여 설치를 수행 할 수 있습니다. 그러나 현재 사용자에게 관리자 권한이없는 경우에는 작동하지 않을 것입니다. –

1

The requested operation requires elevation

이 설정을 실행할 권한이 없습니다. 아마도 UAC가이를 차단합니다.

Java에서 Runtime#exec과 함께 runas 명령을 사용하십시오.

+0

가능하다면 ... – Aerrow

+0

Java는 아니지만 Rocky의 접근 방식은 그렇습니다. –

+0

Rocky의 프로세스는 suite 일뿐입니다. 수동으로 exe를 실행하는 경우 여기에서 exe를 코드를 통해 실행합니다. "관리자로 실행"모드를 수행하는 코드는 무엇입니까? – Aerrow