我有一个小 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/