如何在需要超级用户权限的位置用java编写文件?

如何在需要超级用户权限的位置用java编写文件?,java,file-io,Java,File Io,我正在尝试使用java编写一个文件。我正在使用ubuntu平台。我可以将其写入主文件夹,但它需要超级用户权限才能写入/var/foo文件夹(这很明显!)。如何使用超级用户权限编写文件,以便在/var/foo文件夹中编写文件?目前我的代码片段和异常如下: public class WritetoFile { public static void main(String[] args) throws IOException { File f = new File("

我正在尝试使用java编写一个文件。我正在使用ubuntu平台。我可以将其写入主文件夹,但它需要超级用户权限才能写入/var/foo文件夹(这很明显!)。如何使用超级用户权限编写文件,以便在/var/foo文件夹中编写文件?目前我的代码片段和异常如下:

public class WritetoFile
{

    public static void main(String[] args) throws IOException
    {
        File f = new File("/var/foo/abc.txt");

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

        FileWriter fw = new FileWriter(f.getAbsoluteFile());
    BufferedWriter bw = new BufferedWriter(fw);
    bw.write("Hello world!");
        bw.close();
   }
}
当我执行它时,我会得到以下异常(显然!)


那么,是否有其他类或方法将文件写入/var/foo文件夹?

让超级用户运行该程序:如果您没有权限,则您没有权限。如果有办法使用Java类来解决这个问题,我们会遇到很多麻烦。在sudo下运行程序可能会出现重复。或者让程序调用用另一种具有setUID特权的语言编写的东西,并为您写入该文件。但一般来说,如果您认为除了系统维护之外,您还需要root权限,那么您解决问题的方法是错误的。
Exception in thread "main" java.io.IOException: Permission denied
    at java.io.UnixFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(File.java:959)
    at WritetoFile.main(WritetoFile.java:19)