标签: classpath

Java:来自class.getResource(...)的NullPointerException

我正在编写一个小应用程序,当我尝试创建一个ImageIcon时,我总是遇到异常.这个例外代码引起了异常:

prayerLevel.setIcon(new ImageIcon(getClass().getResource("/icons/icon_prayer.png")));
Run Code Online (Sandbox Code Playgroud)

现在在我的程序中,文件夹/ icons /确实存在.我不知道它是否有所不同但是类文件在一个包中,其中icons文件夹在项目文件夹中(当你看到bin和src文件夹时).

我已经四处寻找,我找不到可以帮助我解决问题的解决方案.也许你们中的任何人都可以帮忙吗?

编辑:有人要求我的文件夹层次结构:

文件夹层次结构

我知道类文件与图标不在同一个文件夹中,但我已经创建了应用程序,我必须从不同的文件夹加载文件并执行/文件夹/始终用于工作.

编辑2:

System.out.println(getClass().getResource("/icons/icon_prayer.png") == null);
Run Code Online (Sandbox Code Playgroud)

打印真实.

java classpath

6
推荐指数
1
解决办法
2万
查看次数

在playframework app中设置classpath顺序

我有一个项目,我需要解析一些HTML文件作为播放应用程序的一部分.为了那个任务,我想我会申请nekohtml.我将nekohtml指定为dependencies.yml中的dep和isse'play dependencies'.这将nekohtml和xerces拉入lib文件夹.一切都很好.但是,nekohtml需要在类路径上的xerces之前才能正常工作.至于我在https://github.com/playframework/play/blob/master/framework/pym/play/application.py#L124上可以看到,类路径上的jar的顺序是任意的,如http:// docs.python.org/library/os.html#os.listdir 是否有可能以某种方式手动设置类路径上的jar的顺序?

编辑:我的dependencies.yml看起来像这样:

require:  
  - play
  - org.apache.poi -> poi 3.7
  - net.sourceforge.nekohtml -> nekohtml 1.9.14:
       transitive: false
  - xerces -> xercesImpl 2.9.1
Run Code Online (Sandbox Code Playgroud)

当我发出命令'play classpath'时,它列出了以下内容(摘录):

['/ home/leif/dev/java/fun/tk/conf','/ home/leif/dev/play/play1.2/framework/play-1.2.jar','/ home/leif/dev/java /fun/tk/lib/jaxen-1.1.jar','/ home/leif/dev/java/fun/tk/lib/log4j-1.2.15.jar','/ home/leif/dev/java/fun /tk/lib/junit-4.8.1.jar','/ home/leif/dev/java/fun/tk/lib/jta-1.1.jar','/ home/leif/dev/java/fun/tk /lib/dom4j-1.6.1.jar','/ home/leif/dev/java/fun/tk/lib/xercesImpl-2.9.1.jar','/ home/leif/dev/java/fun/tk /lib/commons-collections-3.2.1.jar','/ home/leif/dev/java/fun/tk/lib/xml-resolver-1.2.jar','/ home/leif/dev/java/fun /tk/lib/xml-apis-1.3.04.jar','/ home/leif/dev/java/fun/tk/lib/antlr-2.7.6.jar','/ home/leif/dev/java /fun/tk/lib/poi-3.7.jar','/ home/leif/dev/java/fun/tk/lib /commons -logging-1.1.1.jar','/ home/leif/dev/java /fun/tk/lib/nekohtml-1.9.14.jar','/ home/leif/dev/play/play1.2/framework/lib/jj-textile.jar',...

所以xerces明显领先于nekohtml,即使传递dep被排除并在nekohtml之后手动添加.

classpath playframework

6
推荐指数
1
解决办法
1023
查看次数

将jar添加到classpath,Eclipse,Android

目前,我转到属性 - >构建路径 - >库 - >然后将外部jar添加到我的类路径中,我知道这是正确的方法,对于java至少.但是,问题是我在Android SDK 2.1上运行它.当我运行程序时,我不认为android模拟器可以"找到"类路径中的.jars.这可能吗?如果是这样,在将jar添加到我的类路径之前,我将哪个文件夹放入?

eclipse android jar classpath

6
推荐指数
1
解决办法
1万
查看次数

Class.getResource()在我的Eclipse Application中返回null?无法配置classpath?

我试图用来Class.getResource("rsc/my_resource_file.txt")在Eclipse应用程序中加载文件.但是,无论我在Eclipse中做什么,类路径总是只包含Eclipse Launcher的一个条目:

... /日蚀/插件/ org.eclipse.equinox.launcher_1.2.0.v20110502.pkc

如何配置类路径?

注意:在运行时,我使用以下代码确定类路径:

URLClassLoader cl = (URLClassLoader) ClassLoader.getSystemClassLoader();
for (URL classpathURL : cl.getURLs()) {
    System.out.println(classpathURL);
}
Run Code Online (Sandbox Code Playgroud)

编辑:更多信息.

问题的根源Class.getResource("rsc/my_resource_file.txt")是返回null.在一个简单的5行"Java应用程序"中做了一些小实验,我以为我已经弄明白了,问题与类路径有关.显然,类路径与"Eclipse应用程序"的行为略有不同.我通过Class.getResource("/rsc/my_resource_file.txt")感谢BalusC 解决了这个问题.

java eclipse classpath

6
推荐指数
1
解决办法
2万
查看次数

JNI能否在类路径中实现通配符扩展?

我有一个C二进制文件,通过JNI调用Java.我将CLASSPATH设置为somedir/*以获取somedir中的所有jar.

当我运行二进制文件时,找不到所需的类定义.我跑的时候

java that.class's.name 
Run Code Online (Sandbox Code Playgroud)

从同一命令行,成功找到该类.如果我明确地将somedir /中的所有jar添加到类路径中,一切都很好,但这导致了一个很长的类路径,我想避免.

通过JNI执行的JVM是否支持类路径的通配符扩展?可以这样做吗?

c java unix java-native-interface classpath

6
推荐指数
1
解决办法
2171
查看次数

如何配置Eclipse插件的bootstrap类路径?

我想替换我的Eclipse插件所依赖的一些类(javax.tools.*)rt.jar依赖于我自己的这些类的版本.rt.jar通常通过设置bootclasspath来替换类.我的问题是如何在Eclipse插件中执行此操作.

我创建了这些类的版本的JAR文件,并将其添加到Bundle-ClassPath的属性MANIFEST.MF,该bin.includes属性build.properties,和.classpath.我还将我的JAR文件的路径输入到Eclipse Application启动配置对话框的名为"Bootstrap entries:"的字段中,并将我的JAR移动到"Project Properties> Build Path"的"Order and Export"选项卡中的顶部.尽管如此,当我使用Eclipse Application启动配置运行Eclipse插件时,插件使用原始类rt.jar而不是我的JAR文件中的类.

我如何配置我的Eclipse插件,以便它首先查找我的JAR文件中的类,并且rt.jar仅在我的JAR文件中找不到该类时才进行咨询?

java eclipse classpath bootclasspath

6
推荐指数
1
解决办法
3万
查看次数

ClassNotFoundexception:net.sourceforge.jtds.jdbc.Driver

我遇到了 java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver

我可以通过将jtds.jar文件放在CATALINA_HOME/lib目录中来解决这个错误,但这不是一个理想的解决方案,因为应用程序应该足够模块化,可以在任何服务器上部署.

我有jtds.jar文件在[tomcat_dir]/webapps/myapp/WEB-INF/lib哪里,我想从中找到它.

我知道有很多相似的问题,所以我很抱歉,如果这是一个重复,但我还没有能够找到一个有用的帖子.

为什么我的应用程序找不到jtds.jar我在应用程序包中包含的正确文件?为了让应用识别该jar文件,我需要做什么?

java tomcat jar jdbc classpath

6
推荐指数
1
解决办法
1462
查看次数

Gradle如何创建一个空的fileCollection?

def mergedCompileClasspath == null
project.sourceSets.each {
        if (mergedCompileClasspath == null)
            mergedCompileClasspath = it.compileClasspath
        else    
            mergedCompileClasspath .plus(it.compileClasspath)

}
Run Code Online (Sandbox Code Playgroud)

plus() 方法不起作用。compileClassPath 是不可变的?如何创建一个空的fileCollection?

collections file classpath gradle

6
推荐指数
1
解决办法
2477
查看次数

Kotlin:获取资源文件夹中所有文件的列表

有没有办法获取 Kotlin 中“资源”文件夹中所有文件的列表?

我可以将特定文件读取为

Application::class.java.getResourceAsStream("/folder/filename.ext")
Run Code Online (Sandbox Code Playgroud)

但有时我只想将文件夹“文件夹”中的所有内容提取到外部目录。

谢谢你。

resources classpath kotlin

6
推荐指数
3
解决办法
1万
查看次数

Spring Boot - 类路径清单属性

我是 Spring Boot 的新手,目前正在建立一个项目。当我运行应用程序时,它运行良好,但在控制台中我不确定。你们能帮帮我吗。谢谢

The Class-Path manifest attribute in /Users/user/.m2/repository/com/sun/xml/bind/jaxb-impl/2.3.2/jaxb-impl-2.3.2.jar referenced one or more files that do not exist: file:/Users/user/.m2/repository/com/sun/xml/bind/jaxb-impl/2.3.2/jaxb-runtime-2.3.2.jar,file:/Users/user/.m2/repository/com/sun/xml/bind/jaxb-impl/2.3.2/txw2-2.3.2.jar,file:/Users/user/.m2/repository/com/sun/xml/bind/jaxb-impl/2.3.2/istack-commons-runtime-3.0.8.jar,file:/Users/user/.m2/repository/com/sun/xml/bind/jaxb-impl/2.3.2/stax-ex-1.8.1.jar,file:/Users/user/.m2/repository/com/sun/xml/bind/jaxb-impl/2.3.2/FastInfoset-1.2.16.jar,file:/Users/user/.m2/repository/com/sun/xml/bind/jaxb-impl/2.3.2/jakarta.activation-api-1.2.1.jar
The Class-Path manifest attribute in /Users/user/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.3.1/jaxb-runtime-2.3.1.jar referenced one or more files that do not exist: file:/Users/user/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.3.1/jaxb-api-2.3.1.jar,file:/Users/user/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.3.1/txw2-2.3.1.jar,file:/Users/user/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.3.1/istack-commons-runtime-3.0.7.jar,file:/Users/user/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.3.1/stax-ex-1.8.jar,file:/Users/user/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.3.1/FastInfoset-1.2.15.jar,file:/Users/user/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.3.1/javax.activation-api-1.2.0.jar
Run Code Online (Sandbox Code Playgroud)

spring classpath spring-boot

6
推荐指数
1
解决办法
2946
查看次数