[解決済み】getResourceAsStreamがnullを返す。
2022-04-05 07:13:14
質問
Javaプロジェクトのコンパイル済みJAR内のパッケージからテキストファイルを読み込んでいます。関連するディレクトリ構造は次のとおりです。
/src/initialization/Lifepaths.txt
私のコードでは、ファイルを読み込むために
Class::getResourceAsStream
を返すようにしました。
InputStream
.
public class Lifepaths {
public static void execute() {
System.out.println(Lifepaths.class.getClass().
getResourceAsStream("/initialization/Lifepaths.txt"));
}
private Lifepaths() {}
//This is temporary; will eventually be called from outside
public static void main(String[] args) {execute();}
}
プリントアウトは常に
null
何を使ってもダメです。上記でうまくいかない理由がよくわからないので、私も試してみました。
-
"/src/initialization/Lifepaths.txt"
-
"initialization/Lifepaths.txt"
-
"Lifepaths.txt"
どちらも動作しません。
私は
読む
多数
質問
大抵の場合、ルートパスを使ってファイルを読み込むようにと書かれていますが、私はすでにそうしています。それか、カレントディレクトリからファイルをロードするか(単にロード
filename
というのも試したことがあります。ファイルは、適切な場所に適切な名前でJARにコンパイルされています。
どうすれば解決できますか?
どのように解決するのですか?
Lifepaths.class.getClass().getResourceAsStream(...)
システムのクラスローダーを使ってリソースをロードすると、JARが見えないので明らかに失敗します。
Lifepaths.class.getResourceAsStream(...)
は、Lifepaths クラスをロードしたのと同じクラスローダーを使ってリソースをロードし、JAR 内のリソースにアクセスできるはずです。
関連
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] ファイルを作成せずに、ファイルが存在するかどうかをチェックする
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] x--やx++はここで何をするのですか?
-
[解決済み] instanceofを呼び出す前にnullチェックは必要ですか?
-
[解決済み] IntelliJのインスペクションで「シンボルを解決できない」と表示されたが、コードはコンパイルされる
-
[解決済み] Mavenでjarに依存関係を含める
-
[解決済み】Javaの「ダブルブレース初期化」の効率化?
-
[解決済み】JUnitでsrc/test/resourcesディレクトリのパスを取得する方法は?
-
[解決済み] コマンドラインからJARファイルを実行し、クラスパスを指定する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] getContentPane()は具体的に何をするのですか?
-
[解決済み] java.lang.IncompatibleClassChangeError: Mongo クラスを実装しています。
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] 要素 'beans' の宣言が見つかりません。
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] java.lang.ClassNotFoundException: クラス com.ibm.db2.jcc.DB2Driver が Worklight プラットフォームまたはプロジェクトに見つかりませんでした。
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] Mavenです。JARは空になります - 含有するためにマークされたコンテンツがありません
-
[解決済み] アクティビティに割り当てられない
-
[解決済み] java swingアプリケーションでJCEがプロバイダBCを認証できない