java加载classpath_Java加载classpath文件的正确姿势-Go语言中文社区

Java中有多种加载资源的方式:

this.getClass().getResource(resourceName)

除非以”/“开头,否则找this类同包的文件。

Thread.currentThread().getContextClassLoader().getResource(resourceName)

ClassLoader可以共享,创建的线程使用Thread.setContextClassLoader,可以相互加载对象的资源。

如果没有设置则是其父线程的类加载器。

ClassLoader.getSystemClassLoader().getResource(resourceName)

需要使用root开始的完整路径

代码示例

项目结构:

0c25a5bc617f75d4c8572524c052abbc.png

package com.logicbig.example;

import java.io.IOException;

import java.net.URL;

import java.nio.file.Files;

import java.nio.file.Paths;

public class ClassA {

private static final String line = "-----------------------------------------";

private void loadResource (String resource) throws IOException {

URL u = this.getClass().getResource(resource);

loadResourceByUrl(u, resource);

}

private void loadResourceWithContextLoader (String resource) throws IOException {

URL u = Thread.currentThread().getContextClassLoader().getResource(resource);

loadResourceByUrl(u, resource);

}

private void loadResourceWithSystemClassLoader (String resource) throws IOException {

URL u = ClassLoader.getSystemClassLoader().getResource(resource);

loadResourceByUrl(u, resource);

}

private void loadResourceByUrl (URL u, String resource) throws IOException {

System.out.println("-> attempting input resource: "+resource);

if (u != null) {

String path = u.getPath();

path = path.replaceFirst("^/(.:/)", "$1");

System.out.println(" absolute resource path found :n " + path);

String s = new Stri

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JAVA项目中,CLASSPATH是一个重要的环境变量,用于指定JAVA程序运行时需要的类和资源文件的路径。如果CLASSPATH设置不正确,会导致无法找到类文件或资源文件,从而引发程序运行异常。以下是关于JAVA项目中CLASSPATH路径的详解: 1. CLASSPATH的设置 在命令行中设置CLASSPATH的方法如下: ``` java -classpath <path1>:<path2>:<path3> <classname> ``` 其中,`<path1>`、`<path2>`、`<path3>`表示类文件或资源文件所在的路径,多个路径之间用冒号分隔。`<classname>`表示要执行的类名。 在Eclipse等开发工具中,可以在项目的配置中设置CLASSPATH。 2. CLASSPATH的顺序 当JAVA程序需要一个类或资源文件时,会按照CLASSPATH中指定的顺序依次在各个路径中查找文件。如果找到了就直接,否则就继续查找下一个路径,直到找到该文件或查找完所有路径为止。 因此,在设置CLASSPATH时,需要注意路径的顺序。一般来说,应该将当前项目的路径放在最前面,以确保程序能够正确项目中的类和资源文件。 3. CLASSPATH的写法 在设置CLASSPATH时,路径的写法有以下几种: - 绝对路径:例如`/usr/local/java/lib`,表示在根目录下的`/usr/local/java/lib`路径中查找文件。 - 相对路径:例如`./lib`,表示在当前路径下的`./lib`路径中查找文件。 - 通配符:例如`./lib/*.jar`,表示在当前路径下的`./lib`路径中查找所有以`.jar`结尾的文件。 4. CLASSPATH的常见问题 在JAVA项目中,常见的CLASSPATH路径问题有以下几种: - 类文件或资源文件不存在:如果CLASSPATH中指定的路径中不存在要的类文件或资源文件,会导致程序运行异常。 - CLASSPATH顺序设置不正确:如果CLASSPATH中指定的顺序不正确,可能会导致程序的类文件或资源文件不是期望的那个,从而引发程序运行异常。 - CLASSPATH路径中包含空格:如果CLASSPATH路径中包含空格,需要使用双引号将路径括起来,否则可能会导致程序无法正确文件或资源文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值