在Java中,使用a.getClass()或选择的优缺点是什么A.class?要么可以在任何Class<?>预期的地方使用,但我想在不同的情况下使用它们会有性能或其他微妙的好处(就像有Class.forName()和ClassLoader.loadClass().
我使用以下内容来获取此特定文件的URL,但它返回null.有没有人对问题或其他方法有任何建议吗?
URL url = ExchangeInterceptor.class.getResource("GeoIP.dat");
Run Code Online (Sandbox Code Playgroud) 我在Java Web应用程序中有以下结构:
TheProject
-- [Web Pages]
-- -- [WEB-INF]
-- -- -- abc.txt
-- -- index.jsp
-- [Source Packages]
-- -- [wservices]
-- -- -- WS.java
Run Code Online (Sandbox Code Playgroud)
在WS.java,我在Web方法中使用以下代码:
InputStream fstream = this.getClass().getResourceAsStream("abc.txt");
Run Code Online (Sandbox Code Playgroud)
但它始终返回null.我需要从该文件中读取,并且我读到如果您将文件放入WEB-INF,您可以使用它来访问它们getResourceAsStream,但该方法总是返回一个null.
我可能做错了什么想法?
顺便说一句,奇怪的是这是有效的,但是在我Clean and Build对项目执行了一次后,它突然停止了工作:/
我无法让getResourceAsStream找到一个文件.我把文件放在顶级目录,目标目录等等,并在前面尝试了"/".每次返回null.
有什么建议 ?谢谢.
public class T {
public static final void main(String[] args) {
InputStream propertiesIS = T.class.getClassLoader().getResourceAsStream("test.txt");
System.out.println("Break");
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个使用Java 1.8.0 162的应用程序,我正在将它升级到Java 10.我遇到的一个问题是
appProperties.getClass().getResourceAsStream("/application.properties")
Run Code Online (Sandbox Code Playgroud)
在Java 10中开始返回null.任何想法为什么?appProperties定义如下:
appProperties = new Properties();
Run Code Online (Sandbox Code Playgroud)
这种情况发生在静态方法中,如果相关的话.
该文件存在于src/main/resources/application.properties.无论我是从IntelliJ运行还是从Maven生成的jar中运行,都会发生这种情况.
我尝试添加:
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
Run Code Online (Sandbox Code Playgroud)
对我而言pom.xml,这没有任何影响.
使用以下方法打印类路径:
System.getProperty("java.class.path")
Run Code Online (Sandbox Code Playgroud)
收益率,作为第一个条目:
C:\Users\pupeno\Documents\Dashman\code\dashman\target\classes
Run Code Online (Sandbox Code Playgroud)
其中包含application.properties.
我有一个问题困扰了我好几天......我检查了类似的问题,但找不到解决方案。
我使用 NetBeans IDE。我构建了项目 jar 文件,即“Clock.jar”,其中包含一个名为“时钟”的文件夹,其中可以找到一些图像、文本文件和所有项目类。以下用于创建图像图标的代码有效
return new ImageIcon(getClass().getResource("/clock/button_close.png"));
Run Code Online (Sandbox Code Playgroud)
但是下面读取文本文件的代码失败了
InputStream name = getClass().getResourceAsStream("/clock/input.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(name));
Run Code Online (Sandbox Code Playgroud)
正如您可能已经猜到,抛出 NullPointer 异常意味着它可能无法找到该文件。
但是为什么图像图标构造成功(通过传递从 getResource 返回的 URL)但找不到 txt 文件(通过传递来自 getResourceAsStream 的输入流)。
提前致谢,对于任何答案(我是认真的:))
jar -tvf Clock.jar
0 Wed May 15 14:44:36 EEST 2013 META-INF/
202 Wed May 15 14:44:34 EEST 2013 META-INF/MANIFEST.MF
0 Wed May 15 14:44:36 EEST 2013 clock/
649 Wed May 15 14:44:36 EEST 2013 clock/Clock$1$1.class
789 Wed May 15 14:44:36 EEST 2013 clock/Clock$1.class
2026 Wed May 15 14:44:36 …Run Code Online (Sandbox Code Playgroud) java ×5
class ×1
eclipse ×1
file ×1
image ×1
inputstream ×1
jar ×1
java-10 ×1
jboss ×1
null ×1
reflection ×1
resources ×1
text ×1
url ×1
web-services ×1