gpt4 book ai didi

java - 通过 URLClassLoader 使用文件作为资源

转载 作者:行者123 更新时间:2023-11-30 02:56:46 26 4
gpt4 key购买 nike

我正在尝试编写一个可以从命令行传递任意文件的 Java 1.7 应用程序。该文件将被添加到类加载器中,以便可以将其用作资源。

将文件添加到 URLClassLoader 似乎可行,但是添加到 ClassLoader 后如何将该文件作为资源获取?

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Arrays;

public class ClassLoaderTest {

public static void main(String... args) throws MalformedURLException {

File file = new File("/tmp/application.conf");
URLClassLoader classLoader = new URLClassLoader(new URL[]{file.toURI().toURL()});
System.out.println("ClassLoader URLs: " + Arrays.toString(classLoader.getURLs()));

if (file.exists()) {
System.out.println("File \"" + file.getAbsolutePath() + "\" exists!");
} else {
System.out.println("File \"" + file.getAbsolutePath() + "\" does not exist!");
return;
}

URL url = classLoader.getResource(file.getAbsolutePath());

System.out.println("File \"" + file.getAbsolutePath() + "\" as url: " + url);

assert url != null;

}
}

最佳答案

URLClassLoader仅支持 jar 文件和文件目录。所以有两个选择:

  1. 将资源放入 jar 文件中,然后将该 jar 文件添加到 URLClassLoader 中。
  2. 向类加载器提供目录并使用该目录中文件的相对路径。

关于java - 通过 URLClassLoader 使用文件作为资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37040838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com