Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java exe没有';跑不动_Java_File_Runtime.exec - Fatal编程技术网

Java exe没有';跑不动

Java exe没有';跑不动,java,file,runtime.exec,Java,File,Runtime.exec,我使用以下Java代码将文件从一个目录移动到另一个目录,然后在目标目录中执行该文件。我的代码是 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.JDia

我使用以下Java代码将文件从一个目录移动到另一个目录,然后在目标目录中执行该文件。我的代码是

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
java.io.IOException:无法运行程序“test\setup.exe”:CreateProcess error=740,请求的操作需要提升
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
位于java.lang.Runtime.exec(Runtime.java:593)
位于java.lang.Runtime.exec(Runtime.java:431)
位于java.lang.Runtime.exec(Runtime.java:328)
在JFileChooserTest.main(JFileChooserTest.java:34)
原因:java.io.IOException:CreateProcess error=740,请求的操作需要提升
在java.lang.ProcessImpl.create(本机方法)
位于java.lang.ProcessImpl.(ProcessImpl.java:81)
在java.lang.ProcessImpl.start(ProcessImpl.java:30)
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
... 4更多
这里我使用了“setup.exe”。它是一个可执行文件。当我在运行时执行时,我得到了上面的错误。它为什么会发生,有什么办法可以解决。提前谢谢

请求的操作需要提升

您没有执行此设置的权限。也许UAC会阻止它


使用Java中的
Runtime#exec
命令。

我猜您使用的是windows 7,当您运行批处理以启动JFileChooser测试时,右键单击并选择“以管理员身份运行”。

此可执行文件需要管理员权限才能运行,你的java应用程序应该以管理员的身份运行才能执行。Windows 7/Vista和UAC?@Maurício Linhares:我在使用Windows 7,如果可以通过代码授予管理员权限的话。是的,我在使用Windows 7,如果可以通过代码授予管理员权限的话。在这里,我在运行时执行“setup.exe”。如果有任何其他方法可以做到这一点,您不能用代码来完成,但您可以执行另一个批处理过程,并在其中使用/runas命令进行设置。但是,如果您当前的用户没有管理员权限,它将无法工作。不是使用Java,而是使用Rocky的方法,是的。只有我手动执行exe,Rocky的进程才是套件,这里我通过代码执行exe。是否有代码可以执行“以管理员身份运行”模式?是的,您可以。Windows有一个
runas
命令,可以执行您需要的操作。首先尝试在
cmd
中运行,然后在Java中使用。尽管检查
runas
返回代码和标准输出。