- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试加载 config
包中名为 config.properties
的文件。
我在 Main.java
中的代码片段:
//Read config.properties
Properties properties = new Properties();
System.out.println(Main.class.getClassLoader().getResource("config/config.properties").toString());
InputStream propertiesFile = Main.class.getClassLoader().getResourceAsStream("config/config.properties");
properties.load(propertiesFile);
然而,这给了我一个 NullPointerException
。但是当我加载 img/background/background.png
时,我使用:(来自 Panel.java
)
background = new ImageIcon(this.getClass().getClassLoader().getResource("img/background/background.png")).getImage();
这很好用。我已经阅读了很多关于 stackoverflow 的问题,但找不到解决我的问题的方法。除了属性文件是在静态上下文中加载这一事实外,我没有看到加载背景图像或属性文件之间的区别。但据我所知,这应该可行。
我忘记了什么?
编辑:我刚刚运行了 System.out.println(Main.class.getClassLoader().getResource("config/config.properties").toString());
,它打印了 config.properties
的正确路径。
堆栈跟踪: java.lang.NullPointerException
在 main.Main.startGame(Main.java:70)
在 main.gui.panel.MenuPanel$1.actionPerformed(MenuPanel.java:31)
在 javax.swing.AbstractButton.fireActionPerformed(未知来源)
在 javax.swing.AbstractButton$Handler.actionPerformed(未知来源)
在 javax.swing.DefaultButtonModel.fireActionPerformed(未知来源)
在 javax.swing.DefaultButtonModel.setPressed(未知来源)
在 javax.swing.plaf.basic.BasicButtonListener.mouseReleased(未知来源)
在 java.awt.Component.processMouseEvent(未知来源)
在 javax.swing.JComponent.processMouseEvent(未知来源)
在 java.awt.Component.processEvent(未知来源)
在 java.awt.Container.processEvent(未知来源)
在 java.awt.Component.dispatchEventImpl(未知来源)
在 java.awt.Container.dispatchEventImpl(未知来源)
在 java.awt.Component.dispatchEvent(未知来源)
在 java.awt.LightweightDispatcher.retargetMouseEvent(未知来源)
在 java.awt.LightweightDispatcher.processMouseEvent(未知来源)
在 java.awt.LightweightDispatcher.dispatchEvent(未知来源)
在 java.awt.Container.dispatchEventImpl(未知来源)
在 java.awt.Window.dispatchEventImpl(未知来源)
在 java.awt.Component.dispatchEvent(未知来源)
在 java.awt.EventQueue.dispatchEventImpl(未知来源)
在 java.awt.EventQueue.access$400(未知来源)
在 java.awt.EventQueue$3.run(未知来源)
在 java.awt.EventQueue$3.run(未知来源)
在 java.security.AccessController.doPrivileged( native 方法)
在 java.security.ProtectionDomain$1.doIntersectionPrivilege(未知来源)
在 java.security.ProtectionDomain$1.doIntersectionPrivilege(未知来源)
在 java.awt.EventQueue$4.run(未知来源)
在 java.awt.EventQueue$4.run(未知来源)
在 java.security.AccessController.doPrivileged( native 方法)
在 java.security.ProtectionDomain$1.doIntersectionPrivilege(未知来源)
在 java.awt.EventQueue.dispatchEvent(未知来源)
在 java.awt.EventDispatchThread.pumpOneEventForFilters(未知来源)
在 java.awt.EventDispatchThread.pumpEventsForFilter(未知来源)
在 java.awt.EventDispatchThread.pumpEventsForHierarchy(未知来源)
在 java.awt.EventDispatchThread.pumpEvents(未知来源)
在 java.awt.EventDispatchThread.pumpEvents(未知来源)
在 java.awt.EventDispatchThread.run(未知来源)
Main.java
- 第 70 行:
int maxFPS = Integer.getInteger(properties.getProperty("FPS"));
config.properties
:
FPS=45
fpsCap=1
最佳答案
问题不在于 getResourceAsStream("config/config.properties")
,而在于我读取属性的方式。属性 FPS
被写成一个 String
,为了在 int
中实现它,我不得不使用 Integer.parseInt()
,而不是 Integer.getInteger()
。
关于java - getResourceAsStream() 为属性文件返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26871358/
我导入了一个由 Amazon 编码的 Android 示例,涉及我从这里获得的 AWS 的 DynamoDB,并且大概是为 Eclipse 编写的: https://github.com/awslab
Class.getResourceAsStream() 会指定要加载的资源路径与当前类所在包的路径一致。 例如你写了一个MyTest类在包com.test.mycode 下,那么MyTes
我在使用 getResourceAsStream 方法时遇到问题 - 由于目录错误,它返回 null。问题是我不知道如何定义目录。 我的项目结构看起来像这样 Project #src #c
我的maven项目的pom.xml如下所示: 4.0.0 groupId artifactId 0.0.1-SNAPSHOT src/main/java
我想从我的 jar 文件中解压资源。 jar 的结构如下所示: my.jar META-INF resources my.exe my.dll
有人可以告诉我 MyClass.class.getClassLoader().getResourceAsStream("TestFile.txt") 和 MyClass.class.getResour
我正在接管一个项目,并且必须假设测试在某些时候按照我发现它们的方式工作(归结为不应该为空): @Test public void testCoding() { assertNotNull(get
您好,我想问一下为什么我使用 getResourceAsStream 得到 null 值? 这是我的代码片段: 我已经尝试过了,并且有效。 InputStream ios = new FileInpu
我有一个通过ant构建的java项目。它将类文件写入output/classes/com/...路径。我的一个 java 类需要从输出文件夹上一级文件夹中的文件读取输入流。看起来如果将文件复制到 ou
我知道这应该很简单,但令人惊讶的是我无法通过谷歌搜索答案。 我有这样的结构: 我的项目 |-src |--com.mypackagename |---MyClass.java |-xml |--boo
我正在编写一个上传和下载函数,我尝试使用这两种方法来写入或读取同一文件夹,但我遇到了 getResourceAsStream 的问题。 (软件在glassfish上运行) 上传:方法上传到此文件夹:/
我的Java代码如下: InputStream in = getClass().getResourceAsStream("hello/say_hello.txt"); System.out.print
我在一个项目中工作,我需要其中的资源。我正在尝试使用此代码获取它: InputStream is =JSONParser.class.getResourceAsStream("a.json"); St
我无法理解如何以在 eclipse 和 jar 中都能工作的方式加载资源。 在我的项目中,我有一个源文件,src。在此之下,我创建了一个新包,我将资源(图像、音频……)导入到其中。所以资源是src/r
我正在使用 Tomcat 作为 servlet 容器使用 Java 编写 Web 应用程序。我编写了一个实现 ServletContextListener 的 AppLoader 类来捕获事件 con
你好, 我有以下代码行: InputStream passoloExportFileInputStream = getClass().getClassLoader().getResourceAsStr
有人可以向我解释一下 .getResourceAsStream() 是如何工作的吗?我试图找出痛苦的事实,在某些情况下 getClass().getResourceAsStream(name);在 e
我需要在 JSF 网络应用程序中读取包含一些配置数据的属性文件。 现在的代码是这样的 private Properties getConfig() { Properties properti
我目前正在从事的项目使用了一个包含在 .jar 文件中的旧应用程序。该应用程序的职责之一是在对配置文件进行更改时更新数据库。每次我尝试运行这个文件(这是一个简单的 Ant Task 扩展)时,我都会在
我应该使用什么文件分隔符来指定资源路径?我运行打包程序 java -jar program.jar。 目前我使用的是如下加载 inputStream = getClass.getResourceAs
我是一名优秀的程序员,十分优秀!