0

ようこそ、コードに問題があります。リソースへのパスを保持する URL が初期化されていないため、誰でもその問題の解決を手伝ってもらえますか? これが私のローディングクラスのコードです:

import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;

public class bufferedImageLoader 
{

    public BufferedImage loadImage(String pathRelativeToThis) throws IOException
    {
        URL url = this.getClass().getResource(pathRelativeToThis);
        BufferedImage img = ImageIO.read(url);
        return img;
    }

}

そして、私が得ているエラーは次のようなものです:

Exception in thread "AWT-EventQueue-1" java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(Unknown Source)
    at rpg.bufferedImageLoader.loadImage(bufferedImageLoader.java:12)
    at rpg.character.draw(character.java:40)
    at rpg.main.paint(main.java:210)
    at rpg.main.update(main.java:190)
    at sun.awt.RepaintArea.updateComponent(Unknown Source)
    at sun.awt.RepaintArea.paint(Unknown Source)
    at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
4

1 に答える 1

0

メソッドClass.getResource(String)は、クラス インスタンスのクラス ローダーに基づいて名前付きリソースをロードします。

これが通常意味することは、カスタム クラスロードによってクラス インスタンスがロードされない限り、ロードしようとしているリソースはクラスパスに関連している必要があるということです。

たとえば、ファイル システムに次の構造があるとします。

C:\
+ temp
  + some-directory
    + some-other-directory
      + some-file.txt

クラスパスに追加すると、次のようにClass.getResource(String)を使用しC:\temp\some-directoryて URL を取得できます。some-file.txt

URL someFileUrl = someClass.getResource("/some-other-directory/some-file.txt");
于 2013-08-09T08:21:55.330 に答える