Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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在Ubuntu中创建目录时出错_Java_Ubuntu_Intellij Idea_Testcase_Create Directory - Fatal编程技术网

使用Java在Ubuntu中创建目录时出错

使用Java在Ubuntu中创建目录时出错,java,ubuntu,intellij-idea,testcase,create-directory,Java,Ubuntu,Intellij Idea,Testcase,Create Directory,我已经做了一个方法的测试用例,它将调用其中的实际方法并执行它 该方法用于创建目录 以下是我的代码: 实际方法: public String getDefaultFolderPath() { String path = ""; try { String os = System.getProperty("os.name"); System.out.println("Os name Identified");

我已经做了一个方法的测试用例,它将调用其中的实际方法并执行它

该方法用于创建目录

以下是我的代码:

实际方法:

public String getDefaultFolderPath() {

String path = "";
        try {

            String os = System.getProperty("os.name");
            System.out.println("Os name Identified");
            if (os.toUpperCase().indexOf("WINDOWS") != -1) {
                File file = new File("C:/MARCDictionary");
                if (!file.exists()) {
                    System.out.println("11");
                    file.mkdir();
                }

                path = "C:/MARCDictionary";
            } else if (os.toUpperCase().indexOf("LINUX") != -1) {
                File file = new File("/usr/MARCDictionary");
                if (!file.exists()) {
                    System.out.println("22");
                    //file.mkdir();
                    file.createNewFile();
                }

                path = "/usr/MARCDictionary";
            } 
         } catch (Exception e) {
            e.printStackTrace();
        }

        return path;
}
测试用例:

@Test
    public void testGetDefaultFolderPath() {
        System.out.println("getDefaultFolderPath");
        Utilities instance = Utilities.getInstance();
        String expResult = "/usr/MARCDictionary";
        String result = instance.getDefaultFolderPath();
        assertEquals(expResult, result);

    }
给我一个错误:

getDefaultFolderPath
Os name Identified
22
java.io.IOException: Permission denied
    at java.io.UnixFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(File.java:1006)
    at NGLUtility.NGLUtilities.getDefaultFolderPath(Utilities.java:108)
    at utilities.NGLUtilitiesTest.testGetDefaultFolderPath(UtilitiesTest.java:85)

org.junit.ComparisonFailure: 
Expected :/usr/MARCDictionary
有什么建议吗?为什么会这样


我正在使用
Ubuntu
intellijidea。

您的程序没有对
/usr
目录的写入权限。您必须授予此文件夹的写入权限,或者尝试
/usr
中具有写入权限的其他文件夹。例如,要授予
/usr
上的所有权限,可以使用
chmod 777/usr


希望这有帮助

这是因为
权限被拒绝
。如何授予权限?A我很困惑,我必须给谁许可?任何帮助,先生。您应该代表有权写入指定位置的用户运行java程序。例如,root:)将777权限授予/usr是个坏主意。只需将文件保存在它所属的位置,如/home/youruser下。不要把操作系统中不属于文件的部分搞得一团糟。@EricLeschinski我完全同意。这就是为什么我只是写了一个例子。