java - 如何使用类路径中的文件?
问题描述
我需要帮助从文件中获取文件才能使用它。通过控制台运行 jar 时,该文件在 -cp 选项中指定。
使用以下命令运行 jar:
java -cp myjar.jar:dir1/dir2/myfile.txt com.company.Main
执行结果:
Exception in thread "main" java.lang.NullPointerException
at com.company.Main.main(Main.java:11)
源代码:
package com.company;
import java.io.InputStream;
public class Main {
public static void main(String[] args) {
ClassLoader classLoader = Main.class.getClassLoader();
InputStream resource = classLoader.getResourceAsStream("dir1/dir2/myfile.txt");
System.out.println(resource.toString());
}
}
项目树
-- сom
---- company
------ Main.java
如何从 -cp 获取该文件?
解决方案
由于您dir1/dir2/myfile.txt
在getResourceAsStream()
调用中指定,您需要包含在类路径中的目录dir1
,这将是工作目录,即.
:
java -cp myjar.jar:. com.company.Main
类路径只能指定:
- 目录
- jar 文件
不支持其他类型的文件。
推荐阅读
- python - 检查列表中的一项是否在列表列表中
- swift - 以编程方式将 onlick 事件添加到 NSView 而无需子类化
- c++ - 带有 if 语句的嵌套循环的时间复杂度
- c# - 尝试编写一个单元通过处理电子邮件的 SendGrid 测试一个天蓝色函数
- node.js - 如何为我的应用程序创建本地数据库?
- class - 从 Kotlin 中不为空的数据类中获取所有属性
- python - 从 s3 存储桶加载 XGBoost
- r - R ggplot 实际值和具有图例的同一图中的多个模拟点
- jestjs - jest coverageThreshold glob 排除了一些子文件夹
- javascript - 如何更新/删除 mongo db 中嵌入数组中的文档?