java - 通过 exec 从 C 运行 jar

标签 java c exec classpath

我有一个小 C 程序,我正在其中 fork 一个新进程,并且我想在那里执行一个 Jar 文件。这是 exec 调用:

execl("/usr/bin/java", "-jar", "/home/user/path/file.jar", NULL)

但是我收到一个错误:

Error: Could not find or load main class .home.user.path.file.jar

如果我从命令行运行相同的命令,Jar 运行不会出现问题。我已经检查了 list 文件,一切都很好。

所以我不知道为什么路径中的斜线会转换为点,从而导致错误。谁能解释一下这个问题?

最佳答案

请注意,execl 将“path”和“argv0”作为两个单独的参数,尽管人们通常认为它们是同一件事。也就是说,您通常需要类似的东西

execl("/usr/bin/java", "/usr/bin/java", "-jar", "foo.jar", NULL);

关于java - 通过 exec 从 C 运行 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32946904/

相关文章:

node.js - 如何避免 Node child_process exec中的命令注入(inject)

java - 使用 exec 将多个输入发送到命令

在 C 中使用 execve 调用 mkdir 系统调用

java - 用于创建特定类型对象的设计模式

java - 即使主签名正确,也会出现 "class does not have a static void main method accepting String[]"错误

java - maven tomcat7 :deploy fails with status code:403, ReasonPhrase:Forbidden

将 C 代码编译为动态链接库

java - RecyclerView 列表项目不显示也不播放

c - 这个全加器实现是否正确?

c - 如何计算矩阵中不同元素的数量? C语言编程