Java 如何使用管理员权限将文件复制到目标

Java 如何使用管理员权限将文件复制到目标,java,file,permissions,Java,File,Permissions,我使用java创建了一个桌面应用程序,将文件复制到根目录。当我在C:\目录外使用可执行的jar文件时,它工作得很好。但当我在C:\Program Files(x86)目录中使用它时,它会抛出一个异常“io.IOException:访问被拒绝” 我的代码如下 File jrxml_source = new File(new File(".").getCanonicalPath() + "\\Reports\\Default.jrxml"); File jrxml_destination = ne

我使用java创建了一个桌面应用程序,将文件复制到根目录。当我在C:\目录外使用可执行的jar文件时,它工作得很好。但当我在C:\Program Files(x86)目录中使用它时,它会抛出一个异常“io.IOException:访问被拒绝”

我的代码如下

File jrxml_source = new File(new File(".").getCanonicalPath() + "\\Reports\\Default.jrxml"); 
File jrxml_destination = new File(new File(".").getCanonicalPath() + "\\Reports\\Tested.jrxml");

if (!destFile.exists()) {
        destFile.createNewFile();
    }

    FileChannel source = null;
    FileChannel destination = null;
    try {
        source = new RandomAccessFile(jrxml_source, "rw").getChannel();
        destination = new RandomAccessFile(jrxml_destination , "rw").getChannel();

        long position = 0;
        long count = source.size();

        source.transferTo(position, count, destination);
    }finally {
        if (source != null) {
            source.close();
        }
        if (destination != null) {
            destination.close();
        }
    }

如果对执行的代码进行管理级别的评估,那么它“可能”会起作用,不过,我强烈建议不要这样做,因为它会打开另一个蠕虫罐。更好的解决方案可能是将文件放在“众所周知”的位置,如
{user.home}\AppData\Local\{your app}
我想将可删除的文件分发给一定数量的用户。因此,他们应该能够在任何地方安装可执行文件。我觉得让用户做任何事情都更方便。那么呢?Windows可能不允许您在任何地方“安装”它”-这是操作系统施加的限制,有一个常见的推荐解决方案通常,我们可以通过弹出权限对话框手动复制文件。我想以编程的方式复制该文件。Java不会这样做,你需要看一个本机解决方案。如果执行的是管理级别的,它“可能”会工作,尽管我强烈反对这样做,因为它会打开另一个蠕虫罐。更好的解决方案可能是将文件放在“众所周知”的位置,如
{user.home}\AppData\Local\{your app}
我想将可删除的文件分发给一定数量的用户。因此,他们应该能够在任何地方安装可执行文件。我觉得让用户做任何事情都更方便。那么呢?Windows可能不允许您在任何地方“安装”它”-这是操作系统施加的限制,有一个常见的推荐解决方案通常,我们可以通过弹出权限对话框手动复制文件。我想以编程方式复制具有该权限的文件