【问题标题】:how should i run a java program from a php page,on submitting a form?在提交表单时,我应该如何从 php 页面运行 java 程序?
【发布时间】:2011-08-04 22:53:02
【问题描述】:

我有一个 .php 页面,现在我想在 php 中提交表单后在后端运行一个 java 程序。我尝试使用 exec()、system() 函数,遗憾的是它不起作用。请帮帮我。 这是代码sn-p:

if($_POST["ADD"])
{
        echo "Phrase has been added now"."<br />";
        $lastline=exec("java -Dwordnet.database.dir=D:\wordnet\2.1\dict Process",$retval); 
}

Process 是我想要执行的主要类。

【问题讨论】:

  • 是的,它可以在命令提示符下工作,但不能在 php 页面上工作。
  • 您的 Apache(或任何您使用的)服务器正在使用的用户需要具有 java 的执行权限。
  • @Sanjay,当心用户可以在 '$retval' 中注入的任何恶意代码,以防 post 参数值未被清理。在面向公众的网站上,这将是一个巨大的安全问题。

标签: java php html


【解决方案1】:

首先,您发布错误消息会有所帮助。检查返回码也是明智的。

其次,指定java的完整路径,例如/usr/bin/java 而不是仅仅使用 java

【讨论】:

  • 实际上java程序是用来更新数据库的,但它没有得到更新。我尝试给出完整路径,但同样的事情正在发生。
【解决方案2】:

在调试模式下启动 java 进程,即启用 jdwp。然后使用一些调试器(例如 jdb)连接到 java 进程,但最好使用完整的 IDE,如 Eclipse。 确保将挂起标志设置为 y 否则 java 进程将在您能够建立调试会话之前终止

exec("java -Xrunjdwp:transport=dt_socket,address=9002,server=y,suspend=y <the rest of command>")

一个比较简单的解决方案是在你的 java 应用程序中使用日志记录,配置为写入某个文件,这样你就可以检查执行过程中出了什么问题。

顺便说一句,您确定 java 程序实际上正在执行吗? :)

【讨论】:

  • java程序完美执行
猜你喜欢
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-07
  • 2021-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多