2014-02-18 3 views
0

Я сделал тестовый пример одного метода, который вызовет в нем фактический метод и выполнит его.Получение ошибки Создание каталога в Ubuntu с помощью Java

Этот метод используется для создания каталога.

Ниже мой код:

Фактический метод:

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 Case:

@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 и Intellij IDEA.

+1

Это происходит потому, что 'Permission denied'. –

+0

Как дать разрешение на это? Я смущен тем, кому я должен дать разрешение? Любая помощь sir .. –

+1

вы должны запустить java-программу от имени пользователя, у которого есть разрешение на запись в указанное место. например, root :) – mangusta

ответ

1

Ваша программа не имеет права на запись /usr каталога. вы должны предоставить права на запись в этой папке или попробовать другую папку в пределах /usr, у которой есть права на запись. Например, чтобы дать все права на /usr вы можете использовать chmod 777 /usr

Надеются, что это помогает

+0

Yo Sanjeev Bhai, это работает .. Сделано. Thank You Man .. –

+0

@JavaCurious ღ ваш самый добро пожаловать. – Sanjeev

+0

Хмм .. Sanjeev Ji;) –