2017-04-06 141 views
-7

我正在創建一個Java桌面應用程序(Runnable jar文件)。第一次運行時,我從用戶那裏得到了一條路徑(如eclipse中的工作區)。Java桌面應用程序 - 內存

我希望應用程序在關閉應用程序並再次運行它時記住路徑(如eclipse記住工作區)。

但我不能這樣做,因爲每次關閉應用程序並再次運行應用程序時,所有變量都將重新初始化。

Eclipse也是一個桌面應用程序。 eclipse如何做,以及如何在我的應用程序中實現它。

+0

您需要將這些值保存到文件或數據庫或任何比您的應用程序壽命更長的值。看看''Properties'',因爲這是一種簡單的方法來加載和保存配置文件在Java中。 – f1sh

+1

需要保持狀態的桌面應用程序通常具有* config文件*。像'eclipse.ini'一樣 – QBrute

+2

您也可以查看_Preferences_ API:https://docs.oracle.com/javase/8/docs/technotes/guides/preferences/overview.html – Berger

回答

1

正如Berger建議您可以使用Preferences API爲:

public static void main(String[] args) { 
    try (Scanner in = new Scanner(System.in)) { 
     Preferences userRoot = Preferences.userRoot(); 
     String workspace = userRoot.get("workspace", null); 
     if (null != workspace) { 
      System.out.println(workspace); 
      System.out.println("Would you like to change the value (Y/N):"); 
      String option = in.nextLine(); 
      if ("Y".equals(option) || "y".equals(option)) { 
       updateWorkspace(in, userRoot); 
      } 
     } else { 
      updateWorkspace(in, userRoot); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

private static void updateWorkspace(Scanner in, Preferences userRoot) { 
    String workspace; 
    System.out.println("Enter value for workspace:"); 
    workspace = in.nextLine(); 
    userRoot.put("workspace", workspace); 
} 

這僅僅是一個樣品的例子。根據您的需要,您可以相應地進行更改。