Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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
关于.jar文件和通过PHP运行java程序的问题_Java_Php_Jar_Exec - Fatal编程技术网

关于.jar文件和通过PHP运行java程序的问题

关于.jar文件和通过PHP运行java程序的问题,java,php,jar,exec,Java,Php,Jar,Exec,我正在建立一个网站,它将使用文件来呈现社交图。这些文件是由JAVA后端创建的。这个JAVA程序由4个类和4个库组成。我知道,为了通过PHP运行JAVA程序,我需要使用“exec”命令调用它,但我看到的所有示例都有.jar可执行文件,而不是语法中的.JAVA文件。所以,我想问两个问题: 是否可以只从PHP调用.java主类而不创建.jar文件?如果是这样,“exec”命令的语法是什么 如果我必须创建.jar可执行文件,我是否只需要将其放在网站文件夹中并调用它?我的意思是,.jar文件是否包含程序需

我正在建立一个网站,它将使用文件来呈现社交图。这些文件是由JAVA后端创建的。这个JAVA程序由4个类和4个库组成。我知道,为了通过PHP运行JAVA程序,我需要使用“exec”命令调用它,但我看到的所有示例都有.jar可执行文件,而不是语法中的.JAVA文件。所以,我想问两个问题:

  • 是否可以只从PHP调用.java主类而不创建.jar文件?如果是这样,“exec”命令的语法是什么
  • 如果我必须创建.jar可执行文件,我是否只需要将其放在网站文件夹中并调用它?我的意思是,.jar文件是否包含程序需要的所有类和库?我不谈论JAVA库,我有4个特定的库(MongoDB、Neo4j、GEXF parser和Lucene DB),它们不是JAVA默认值的一部分。提前谢谢,请原谅我的语法和拼写错误

  • 在SourceForge上有一个项目。另外,您可以通过将后端进程作为servlet运行来公开它,这可能是正确的方法。如果所有其他方法都失败了,您可以“执行”它。

    您必须至少将.java文件编译成.class文件。如果它们位于jar文件中,则会更容易,但这不是必需的

    (一) a) java-cp/location/to/.class/files

    b) java-jar/location/to/the.jar

    2) jar文件不必是可执行的,但是如果这使它更容易,那么正确地设置清单就可以了


    当你说库时,你是指其他.jar文件或本机.dll或.so库?如果是后者,则必须设置库路径才能找到它们。

    php对java一无所知。您必须使用与从命令行运行应用程序完全相同的exec()工具,例如
    exec(“此处的命令行工具”)
    。谢谢您的回答。这些库是我在项目中包含的.jar文件。所以,正如我所理解的,我要么需要整个项目的.class文件,要么需要一个.jar文件?对于.class文件,命令的语法是什么?请参见上面的1A。如果您有.class文件和.jar文件,您可以使用java-cp/path/to/class/files/path/to/other.jar main