Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.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
Can';t通过PHP调用带参数的Java程序_Java_Php_Parameters_Exec - Fatal编程技术网

Can';t通过PHP调用带参数的Java程序

Can';t通过PHP调用带参数的Java程序,java,php,parameters,exec,Java,Php,Parameters,Exec,我正在尝试将一个Java项目与一个网站连接起来。该项目位于“website\u文件夹/data/backend”中,此时,我想测试以下示例是否有效: [java代码] public static void main(string args[]) { if(args[0].equals("5") { File f = new File("/location/to/file/result.txt"); if(!f.exists()) { f.creat

我正在尝试将一个Java项目与一个网站连接起来。该项目位于“website\u文件夹/data/backend”中,此时,我想测试以下示例是否有效:

[java代码]

public static void main(string args[]) {
   if(args[0].equals("5") {
      File f = new File("/location/to/file/result.txt");
      if(!f.exists()) {
         f.createNewFile();
         FileWriter fstream = new FileWriter("/location/to/file/result.txt");
         BufferedWriter out = new BufferedWriter(fstream);
         out.write("It works!");
         out.close();
      }
   }
}
在PHP文件中,我必须执行以下命令:

<?php
exec("java -cp /data/backend/Project/build/classes/project/Main.class/ main 5",$output); 
?>

但是什么也没发生!我的意思是,文件不是在我在main方法中指定的目录中创建的。我尝试在PHP命令中运行该项目的.jar文件,通过变量传递参数“5”,在exec命令中添加到目录路径:“I:/xampp/htdocs/website\u folder/”(I:\是我安装虚拟服务器-xampp-的磁盘驱动器),但没有成功。我是不是在命令的语法上出错了

编辑: 我将命令更改为指向.jar文件(java-jar/data/backend/Project/dist/Project.jar 5),问题就解决了。

试试这个:

"java -cp /data/backend/Project/build/classes/ project.Main 5"

这假设包含
main
方法的类位于包
project
中,称为
main
。如果不是这样,请相应调整。

请在中尝试接受的解决方案,然后报告。您不能指向.class文件。正如adarshr所说,您可以尝试一下,看看它是否有效。它应该告诉您
找不到class main
。我尝试了两种解决方案(export DYLD_LIBRARY_PATH=“”;并指向.class文件夹),但什么都没有发生。我正在使用Windows8。这是否意味着我必须在“java-cp”之前指定一些内容?我是说java的位置还是什么?在一些示例中,我看到一些人添加了“/usr/bin/java”,这肯定与Linux有关。