我有一个从 Java 类执行函数的功能。所以出于这个原因,我使用这个命令来获取类并创建一个新实例:
当我使用 maven (mvn test -Dtest...) 运行此功能时,一切正常。问题是当我使用空手道独立 jar 运行此功能时,空手道找不到 RCNUtils 类。
错误:
org.graalvm.polyglot.PolyglotException: TypeError: Access to host class utilities.RCNUtils is not allowed or does not exist.
我认为这是一个类路径问题,但我尝试了很多不同的路径和命令来执行 jar,但没有任何效果。
我不知道这是否是一个已知问题,或者是否有一个使用实用程序类并使用 karate.jar 执行的空手道示例
我用不同的空手道版本测试了这个问题。实际上我使用的是空手道 1.1.0
我尝试过的一些选项没有结果:
- 使用 -w / --workdir 参数更改没有结果的工作目录
- 使用 java -cp 而不是 java -jar 设置类路径如下: Unable to use read('classpath:') when running tests with Standalone karate.jar
- 使用 -Dkarate.config.dir 参数
注意:我不认为这是一个安全问题,因为如果我尝试在同一功能中使用“karate.read()”或“read()”获取“RCNUtils.java”文件,它会起作用。我想是因为我可以把文件的路径。问题是我不能将 java 类的路径放在“Java.type()”方法中
这里同样的错误: Executing Karate jar with mock using external library Spring Framework
提前致谢。