Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c中使用System()调用Java文件_Java_C_Web Services_Perl - Fatal编程技术网

在c中使用System()调用Java文件

在c中使用System()调用Java文件,java,c,web-services,perl,Java,C,Web Services,Perl,我试图从c代码运行一个java文件,该文件位于我的web服务器上。当我加载网页时,一个perl脚本调用一个c文件,然后调用java文件 我在我的c文件中设置了呼叫: System(java -cp <path> MyClass); System(java-cp-MyClass); 但是这个System()调用返回256-(我想是找不到文件) 我也尝试过: System(cd /<path> && java MyClass); 系统(cd/&&java

我试图从c代码运行一个java文件,该文件位于我的web服务器上。当我加载网页时,一个perl脚本调用一个c文件,然后调用java文件

我在我的c文件中设置了呼叫:

System(java -cp <path> MyClass);
System(java-cp-MyClass);
但是这个System()调用返回256-(我想是找不到文件)

我也尝试过:

System(cd /<path> && java MyClass);
系统(cd/&&javamyclass);
得到同样的结果

如果我通过ssh从终端运行完全相同的命令,它工作得很好,只是当我尝试从浏览器运行代码时,它给出了这个错误

如果我的语法不正确,有什么想法吗?还是我做错了什么?它是否与我被迫使用的perl>c>java链有关

编辑c运行时似乎没有查看$PATH。我将绝对路径添加到java.exe,它成功了!呜呜

tldr

解决方案:

System("/opt/jdk1.6.0_43/bin/java -cp <path> MyClass");
System(“/opt/jdk1.6.0_43/bin/java-cp MyClass”);

根据,您的错误实际上是乘以256,您的返回值实际上是
1
。您能在C文件中提供准确的代码吗?(不一定是整个C文件,而是C文件中出现的相关部分),因为
System(java-cpmyclass)系统(java-cp/theory/www/bin/tree-MyClass)
right?解决此问题的正常方法是从新生成的进程中
fork()
然后
exec()
。另外,
system
需要一个
字符串,对吗?例如,
系统(“ls-l”)