2017-08-04 73 views
1

我想創建日誌文件並在java中寫入一些文本到該文件中。我完成了該task.when運行jar文件此代碼正常工作,但創建安裝程序後。使用exe4j文件寫入過程不工作的exe文件。任何人都知道如何做到這一點?使用exe4j文件創建setup.exe後編寫的程序無法正常工作

我這是怎麼弄的jar文件所在目錄

File f = null; 

public String baseUrl() { 
     try { 
      if (f == null) { 
       f = new File(Register.class.getProtectionDomain().getCodeSource().getLocation().toURI().getRawPath()); 
      } 
      String path = f.getParent(); 
      return path; 
     } catch (URISyntaxException ex) { 
      System.out.println(ex); 
     } 
     return ""; 
    } 

的路徑。這是我的日誌文件創建過程

try { 
    src.Log lg = new src.Log(); 
     lg.setAction(action); 
     lg.setUserName(userName); 
     lg.setDescription(description); 
     lg.setTime(date); 
     lg.setSyncPath(syncPath); 
     lg.setMethod(method); 

     String url = baseUrl(); 
     System.out.println(baseUrl()); 
     String directoryName = url + "/ResFile"; 

     File directory = new File(directoryName); 
     if (!directory.exists()) { 
      directory.mkdir(); 

     } 

     File log = new File(directoryName + "/log.txt"); 

      if (log.exists() == false) { 
       log.createNewFile(); 
      } 
      try (PrintWriter out = new PrintWriter(new FileWriter(log, true))) { 
       out.append(lg.toString()); 
      } 

    } catch (Exception ex) { 
     System.out.println(ex); 
    } 

回答

0

如果使用 「JAR中的EXE」 模式,您的日誌文件將會在一個臨時目錄中結束,因爲這是在運行時解壓縮JAR文件的地方。

要獲得位置的可執行文件所在的目錄,你可以使用

System.getProperty("install4j.exeDir") 
+0

嗨,我用 System.getProperty( 「的user.home」)+ 「\\ AppData的」 現在我的文件創建AppData文件夾。 – Gihan