在windows中使用java+php


Using java + php in windows

我正在考虑是否可以在不安装Tomcat的情况下桥接java和php。我刚刚安装了jdk17,我将PATH设置为C:''jdk17''bin,我的第一个程序是这样的

<html>
<body>
<?php
  $system = new Java("java.lang.System");
  print "Java version=".$system->getProperty("java.version")." <br>'n";
  print "Java vendor=".$system->getProperty("java.vendor")." <p>'n'n";
  print "OS=".$system->getProperty("os.name")." ".
              $system->getProperty("os.version")." on ".
              $system->getProperty("os.arch")." <br>'n";
  $formatter = new Java("java.text.SimpleDateFormat","EEEE, 
    MMMM dd, yyyy 'at' h:mm:ss a zzzz");
  print $formatter->format(new Java("java.util.Date"))."'n";
?>
</body>
</html>

事实上,它不起作用。浏览器上没有显示任何内容。我想我需要在php.ini中添加一些其他内容,但不知道我可以在文件中的什么地方添加
对不起,我对这些都很笨,谢谢你的帮助。

编辑:java能用php做什么?有些公司使用这两个,尽管我反对ASP和C#应该做得更好。他们认为LINUX主机和存储是不可破解的吗?

编辑:顺便说一句,我使用IIS作为我的Web服务器,而不是传统的Apache,谢谢你的关心。

编辑:我想我现在对java世界(Tomcat、apache、xxxsuits、ant、soap、xxxprotocol…)完全感到困惑。有人能发一篇短文来总结一下吗?请给我一些简单易懂的东西,比如米奇课程的讲座。

这是您的问题:

new Java("java.text.SimpleDateFormat","EEEE, 

我不知道PHP上有任何一种叫做"Java"的对象,只要安装Java就可以开箱即用。我认为您正在尝试执行Java Bridge集成,这意味着在执行PHP页面之前,您需要下载Java Bridge发行版并执行Java Bridge服务器。

Java不同于PHP,因为它是经过编译的。PHP被解释,这意味着你不编译它。PHP解释器在运行时读取源代码,并解释源代码,使其执行计算机真正理解的指令。这意味着您将源代码部署到生产服务器。这也意味着您可以简单地更改源代码并重新运行文件,它将改变其行为。

Java不同。当开发人员编写代码时,会在编译时解析源代码。编译在部署之前将源代码转换为指令。这意味着没有部署源代码。因此,Java在运行时不会花费任何额外的时间将源代码转换为指令。这是在部署之前完成的。Java还使用JIT(即时编译)将字节码(Java指令)转换为本机指令。JIT非常快。Java在执行时间上比PHP快得多。但是,如果你想改变行为,你必须改变源代码并重新编译它。Ant是一种帮助编译、打包和部署Java代码的工具。还有Maven,但它有更高的学习曲线。对于C#来说,这在很大程度上也是一样的。它也是一种汇编语言。

Java的支持结构是巨大的。有大量的Java工具和库是其他堆栈无法使用的。像Lucene、Spring、Hadoop、Tomcat、PDF生成等。Java带来的是对许多代码的访问,而这些代码并不总是只使用PHP就可以访问的。例如,我有一个PHP网站,我正在生成条形码和这些条形码的PDF文件。我必须使用Java来生成它,并让PHP通过Tomcat远程调用它。在Java中生成条形码(PDF)更容易,因为存在用于此目的的库。使用Java比使用C更容易(也更安全)。PHP非常擅长快速集成,因为它可以运行任何东西。

如果您想与Java进行快速集成,可以从命令行执行Java可执行文件。PHP可以执行()任何程序,Java与操作系统的视图没有什么不同。它只是一个可执行文件。好处是您不需要Tomcat、Servlet等额外的工具。缺点是Java虚拟机可能会占用相当多的内存和启动时间。如果你正在执行大量的Java虚拟机,你很容易就会占用服务器上的内存。这就是像Tomcat这样的东西可以提供帮助的地方,因为它将在一个Java虚拟机中运行一个长时间运行的程序,您可以通过套接字、HTTP等与之交互。这个程序可以同时提供大量请求。集成有很多选择。

http://php.net/manual/en/function.exec.php

我认为最好的方法是使用Zend Java Bridge。它是Zend Server CE(免费软件)的一部分。

所有的东西都在那里预先配置好了,并且正在工作。

http://files.zend.com/help/Zend-Server/working_with_the_java_bridge.htm