2017-04-06 9 views
-7

私はJavaデスクトップアプリケーション(Runnable jarファイル)を作成しています。私は最初から実行しているときに、ユーザーからのパスを取得しています(Eclipseのワークスペースなど)。Javaデスクトップアプリケーション - メモリ

私は、アプリケーションを終了して再度実行しているとき(つまり、ワークスペースを覚えている日食のような)、パスを覚えておきます。

しかし、私はアプリケーションを閉じて再度実行すると、すべての変数が再初期化されるので、私はそれをやりません。

Eclipseもデスクトップアプリケーションです。どのようにEclipseがそれをやっているのですか、私はどのようにアプリケーションに実装できますか?

+0

ファイルやデータベース、またはアプリケーションより長く存続するものに値を保存する必要があります。 '' Properties''を見てください。これはjavaの設定ファイルをロードして保存する簡単な方法ですから。 – f1sh

+1

状態を維持する必要があるデスクトップアプリケーションには通常、*設定ファイル*があります。 '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); 
} 

。あなたの必要に応じて、それに応じて変更を加えることができます。

関連する問題