java - 从 C++ 代码运行 JVM 并设置类路径

标签 java c++ jvm java-native-interface classpath

我正在尝试从 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/

相关文章:

java - 尝试获取歌曲列表,但出现错误

java - Selenium WebDriver 在线程 "main"org.openqa.selenium.ElementNotInteractableException 中抛出异常

Java Nimbus L&F - 按钮文本颜色不起作用

c++ - 如何使用 C++11 标准库生成随机数

java - 记录任意对象

java - 在动态 TableView 中编辑单元格值?

c++ - 错误 :C2679 binary '==' : no operator found which takes a right-hand operand of type 'const std::string' (or there is no acceptable conversion

c++ - 空 vector 与双端队列的保留时间复杂度以及是否使用 emplace 或 push_back

内存中的Java原始数组布局

java - 如何将 JVM 汇编代码编译成字节码?