我有一个小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运行没有问题。我已经检查了清单文件,那里的一切都很好。
所以我不知道为什么路径中的斜线转换成点,导致错误。任何人都可以解释这个问题吗?
答案 0 :(得分:1)
请注意,execl将“path”和“argv0”作为两个单独的参数,即使通常认为它们是同一个东西。即,你通常需要像
这样的东西execl("/usr/bin/java", "/usr/bin/java", "-jar", "foo.jar", NULL);