Linux C使用execl函数调用/usr/bin/java,输出:Could not create the Java Virtual Machine

_garho 2018-04-01 12:02:23
在Linux写C,想用execl函数调用/usr/bin/java命令,运行当前目录下的Main.class(之前已经编译好了),
代码如下:
if(execl("/usr/bin/java", "/usr/bin/java", "Main", (char *) NULL) == -1)
{
fprintf(stderr, "execl error:%s\n", strerror(2));
}
我把标准输出stdout重定向到user.out文件,execl运行完毕后,user.out里面的内容只有:
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

另外:在命令行直接# /usr/bin/java Main 是可以输出结果的


请各位看看是哪里出问题了?
...全文
782 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
_garho 2018-04-03
  • 打赏
  • 举报
回复
引用 1 楼 cfjtaishan 的回复:
if(execl("/usr/bin/java", "Main", (char *)0) == -1)
{
fprintf(stderr, "execl error:%s\n", strerror(2));
}
建议试一下这种形式
试过了,仍是不可以。我的Main.java只是简单的输出三行字符串。
自信男孩 2018-04-03
  • 打赏
  • 举报
回复
if(execl("/usr/bin/java", “java", "Main", (char *)0) == -1)
{
fprintf(stderr, "execl error:%s\n", strerror(2));
}
只能多试试了
赵4老师 2018-04-03
  • 打赏
  • 举报
回复
百度搜相关关键字。
自信男孩 2018-04-02
  • 打赏
  • 举报
回复
if(execl("/usr/bin/java", "Main", (char *)0) == -1)
{
fprintf(stderr, "execl error:%s\n", strerror(2));
}
建议试一下这种形式

69,374

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧