1

私ができないテンプレートを読む必要がある Java アプリケーションを作成しています。これは、適切なパスでファイルを見つけることができないためです。

コード構造は次のとおりです。

テンプレート読み取りクラス ファイルは src/main/java/com.prototype.main にあります. テンプレートは src/main/java/templates にあります.

つまり、jar を作成すると、3 つのフォルダーは 3 つのフォルダーになります: com templates META-INF

パッケージの下の任意のクラスから、どうすればテンプレートにアクセスできますか? 私は次のことを試しました:

  1. new File("/") Web アプリケーションの場合はアプリケーションのルート ディレクトリから選択されますが、スタンドアロン アプリケーションの場合はシステムのユーザー ディレクトリです
  2. プロジェクト ディレクトリを指定する System.getProperty("user.dir")
  3. ドットで区切られたパッケージ名を示す新しい App().getClass().getName()

/templates/some.xml のようなテンプレート ファイルを読みたい場合、このファイルの完全なパスを取得するにはどうすればよいでしょうか?

事前に助けてくれてありがとう。

4

2 に答える 2

2

埋め込みリソースは ではなく、Fileリソースです。

これらのリソースを使用してClass#getResource、またはClass#getResourceAsInputStream必要に応じて読むことができます。

例えば...

URL url = getClass().getResource("/templates/some.xml");

URL指定されたリソースへの参照を返します。

于 2013-09-04T06:50:35.157 に答える
1

使用できます

InputStream i=this.getClass().getClassLoader().getResourceAsStream("templates/some.xml");

Javaでslick2Dライブラリを使用してxml FileNotFoundExceptionで説明されているように

于 2013-09-04T06:52:15.003 に答える