Java 如何使用管理员权限将文件复制到目标
我使用java创建了一个桌面应用程序,将文件复制到根目录。当我在C:\目录外使用可执行的jar文件时,它工作得很好。但当我在C:\Program Files(x86)目录中使用它时,它会抛出一个异常“io.IOException:访问被拒绝” 我的代码如下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
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可能不允许您在任何地方“安装”它”-这是操作系统施加的限制,有一个常见的推荐解决方案通常,我们可以通过弹出权限对话框手动复制文件。我想以编程方式复制具有该权限的文件