从C经由exec运行jar

时间:2015-10-05 10:56:49

标签: java c exec classpath

我有一个小C程序,我正在分配一个新进程,我想在那里执行一个Jar文件。这是执行电话:

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运行没有问题。我已经检查了清单文件,那里的一切都很好。

所以我不知道为什么路径中的斜线转换成点,导致错误。任何人都可以解释这个问题吗?

1 个答案:

答案 0 :(得分:1)

请注意,execl将“path”和“argv0”作为两个单独的参数,即使通常认为它们是同一个东西。即,你通常需要像

这样的东西
execl("/usr/bin/java", "/usr/bin/java", "-jar", "foo.jar", NULL);