web-dev-qa-db-ja.com

IntelliJ IDEA-getClass()。getResource( "...")はnullを返します

IntelliJを使用していますIDEA 13.1.5、以前はEclipseで作業していました。JavaFXアプリケーションで作業しています。getClass()。getResourceを使用してMainAppクラス内にFXMLファイルをロードしようとします()。私はドキュメントを読み、いくつかのアイデアを試しましたが、最後にnullを持っています。

これは階層です:

dz.bilaldjago.homekode.MainApp.Java

dz.bilaldjago.homekode.view.RootLayout.FXML

これは私が使用したコードスニペットです:

FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("view/RootLayout.fxml"));

ルートからURLを与え、クラスローダーを使用するような他の解決策を試しました

結果は同じです。どんなアイデアでも

24
BilalDja

IDEAのresource rootを指摘して、この問題を解決しました。

Right clickディレクトリ(またはプロジェクト名のみ)-> Mark directory As-> Resource Root

再コンパイルして喜んでください:Pこれがあなたのためにうまくいくことを願っています〜

21
MewX

Intellij Ideaを使用する場合:Settings -> Compiler -> Resource patterns

この設定には、リソースとして解釈される必要のあるすべての拡張機能が含まれています。ここで拡張機能がどのパターンにも準拠していない場合、class.getResourceはこの拡張機能を使用するリソースに対してnullを返します。

16
stacky

プロジェクトがMavenプロジェクトの場合は、ターゲットコードをチェックして、そこに.fxmlファイルが存在するかどうかを確認します。ない場合は、追加してください

<resources>
        <resource>
            <directory>src/main/Java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>

あなたのpom.xmlで

3
Max Yan

TL; DR;

  1. リソースをresourcesフォルダーに配置します。

  2. 名前の前に1つのスラッシュを付けて使用してください:getClass().getResource("/myfont.ttf");

長い話;

Intellij IDEAを使用していて、Mavenプロジェクトを作成した場合は、リソースをresourcesフォルダー(intellij自体によってリソースルートとしてマークされている)に配置し、これらのリソースをコンパイル済みアプリのルート。

つまり、/resources/myfont.ttfは、結果のビルドで/myfont.ttfに移動します。

したがって、/myfont.ttfではなくmyfont.ttfを介して取得する必要があります。次のように使用します。

getClass().getResource("/myfont.ttf");

他に何も変更する必要はありません。これだけで役に立ちました。

1
AlwaysLearner

提案に従って、更新された回答。

ステップ1

  1. プロジェクトを右クリック
  2. Mark Directory asをクリックします
  3. ソースルートをクリックします

ステップ2

  1. メニューバーのファイルをクリックします
  2. [プロジェクト構造]をクリックして、設定パネルを開きます

ステップ-3

  1. [モジュール]タブをクリックします
  2. ご覧のように、コンテンツルートとして追加されたリソースフォルダはありません
  3. リソースフォルダを追加する必要があります

ステップ-4

  1. リソースフォルダをクリックしてください
  2. その後、「リソース」タブをクリックします
  3. 右側のパネルにリソースフォルダとして追加されたリソースフォルダが表示されます

Javaプログラムを再実行すると、動作するはずです。

<---前の回答---->

IntelliJ IDEの[リソース]タブにリソースフォルダーを追加することで、今日同様の問題を修正

お役に立てれば。また、 詳細チュートリアル

0
App Shah