使用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我完全同意。这就是为什么我只是写了一个例子。