我正在尝试从C++代码创建JVM 7,并努力设置正确的类路径。我想使用通配符指定类路径:例如/path/to/*(以将文件夹中的所有jar都包含到类路径中)

如果我通过设置类路径

options[0].optionString = "-Djava.class.path=/path/to/*;";

然后找不到我的类(class)。我尝试使用反斜杠(我使用的是Windows 8),无论是否使用分号,都无济于事。这实际上也不能从命令行使用。

然后,我尝试提供“-cp”选项,但是在这种情况下,无法创建JVM。我试过了:
options[0].optionString = "-cp=/path/to/*";

options[0].optionString = "-cp /path/to/*";

options[0].optionString = "-classpath=/path/to/*";

options[0].optionString = "-classpath /path/to/*";

options[0].optionString = "-cp";
options[0].extraInfo = "/path/to/*";

options[0].optionString = "-cp";
options[1].optionString = "/path/to/*";

这些都没有帮助。

您是否有想法从C++创建JVM时如何为类路径提供通配符?

提前致谢

最佳答案

您将需要自己执行扩展,因为这是Java启动器的功能,而不是JNI API的功能。请参阅启动器源代码中的SetClassPath函数,该函数调用内部JLI_WildcardExpandClasspath函数,然后添加-Djava.class.path选项。

关于java - 从C++代码运行JVM并设置类路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29188564/

10-12 23:57