我正在运行一些测试,我需要获取一个文件的路径,该文件位于我的项目中作为依赖项的 jar 库中。
这个 jar 不是我运行的类路径的一部分。
如果我尝试类似的事情
val path = getClass.getResource("h2-1.3.161.jar").getPath
在我的测试中它不起作用。
知道如何在 jar 中查找文件而不使该 jar 成为类路径的一部分吗?
问候。
使用占星仪的解决方案我设法得到这条路线
java -cp //file:/D:/Users/nb38tv/workspace/f2e-core/f2e-mock/f2e-test-framework/target/f2e-test-framework-1.8.3-SNAPSHOT.jar!/h2/sakila-h2-master/h2-1.3.161.jar -ifExists -tcp -web -tcpAllowOthers
但是 java 提示找不到 jar。
如果我从路径中删除 !
,我会收到此错误
Unrecognized option: -ifExists
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
有什么想法吗?
问候
最佳答案
该文件是 .class 文件吗? 你能在测试中打开该文件吗? 您可以从该 jar 文件实例化一个类吗?
要获取类的位置,您可以使用以下方法: System.out.println(this.getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
关于java - 在外部 jar 中查找文件而不是在我的类路径中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45306174/