java - 在外部 jar 中查找文件而不是在我的类路径中

标签 java scala

我正在运行一些测试,我需要获取一个文件的路径,该文件位于我的项目中作为依赖项的 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/

相关文章:

java - Cloud Endpoint 参数不应命名

java - 使用 Google Gson 映射 Mongo id 字段

java - 我们可以一起选择并更新到数据库吗?

java - `listView.invalidate()` 和 `adapter.notifyDataHasChanged()` 之间有区别吗?

scala - 从字符串形式的日期中减去天数

java - E/AndroidRuntime : FATAL EXCEPTION: main at dalvik. system.NativeStart.main(Native Method) 崩溃

scala - 不带参数的案例类

java - ScalaMock 模拟通用 Java 接口(interface)重载方法

Scala 特性 : val/def and require

Scala 映射和/或 groupby 函数