0

そのため、Web ページ フォルダー内にフォルダーを動的に作成しようとしています。ゲームデータベースを作っています。ゲームが追加されるたびに、私はこれを行います:

public void addGame(Game game) throws DatabaseException {
    em.getTransaction().begin();        
    em.persist(game);   
    em.getTransaction().commit();
    File file = new File("C:\\GameDatabaseTestFolder");
    file.mkdir();      
}

したがって、すべてがここで機能します。ファイルが作成されます。しかし、私はこのようなフォルダを作成したい:

public void addGame(Game game) throws DatabaseException {
    em.getTransaction().begin();        
    em.persist(game);   
    em.getTransaction().commit();
    File file = new File(game.getId()+"/screenshots");
    file.mkdir();      
}

またはそのようなもの。そのため、jsp ファイルがある場所に作成され、ゲームから ID が取得されます。デフォルトでフォルダが作成される場所がわかりません。

前もってありがとう、デビッド

4

1 に答える 1

0

デフォルトでは、「現在の作業ディレクトリ」、つまり、Java ランタイム環境がサーバーを起動した時点で現在開いているディレクトリに相対的です。サーバーの起動方法に応じて、たとえば/path/to/tomcat/bin、 またはなどになります。/path/to/eclipse/workspace/project

この状態は、Web アプリケーション内から制御できないことに気付くはずです。

また、展開された WAR フォルダー (JSP がある場所) に保存したくない場合もあります。これは、WAR を再デプロイするたびに変更が失われるためです (これらのファイルが元の WAR に含まれていないという非常に単純な理由で)。 .

代わりに絶対パスを使用してください。例えば

String gameWorkFolder = "/path/to/game/work/folder";
new File(gameWorkFolder, game.getId()+"/screenshots");

プロパティー・ファイル設定または VM 引数として指定することにより、構成可能にすることができます。

以下も参照してください。

于 2012-04-05T18:15:05.837 に答える