2012-05-09 49 views
2

对PHP的.java或的* .jar我已经可以执行*对PHP的.java或*的.jar我的XAMPP,这个代码执行*在网站

exec('java -cp stanford-parser.jar edu.stanford.nlp.parser.lexparser.LexicalizedParser stanford-parser-2012-03-09-models\edu\stanford\nlp\models\lexparser\englishPCFG.ser.gz text.txt > result.txt'); 

它在我的电脑本地主机。

现在我想把我的代码托管到网站上。恐怕java不想执行并运行exec线。我应该怎么做才能使exec * .java或* .jar在网站上运行?

我听说我必须安装tomcat或javabridge。但我不明白。你可以帮我吗?非常感谢。

+1

你确定托管服务允许'exec'功能?它可以作为一种安全措施被关闭。 –

+0

我不知道T_T ..所以我问你一个人s,我应该怎么做:( – xuweisen

回答

1

您不需要tomcat来运行上面的命令,只要在您运行的服务器上安装了java,就可以像在自己的机器上一样运行它。当然,你需要确保你的路径设置正确,即使这样,这也不是一个好主意,特别是如果你期望它受到大量流量的影响,或者需要大量时间来完成(> 5秒)。

这种“正确”方法最简单的方法是启动一个长时间运行的进程(在Apache/php请求之外),并在完成时设置某种类型的标志或指示器。如果你希望当它完成时立即通知它们,一个简单的方法是运行上面的命令作为后台进程(在命令结尾附加&,如下所示)。当然,这不包括要做很多的错误处理可能需要。

exec('java -cp stanford-parser.jar edu.stanford.nlp.parser.lexparser.LexicalizedParser stanford-parser-2012-03-09-models\edu\stanford\nlp\models\lexparser\englishPCFG.ser.gz text.txt &> result.txt'); 
+0

“只要你在运行的服务器上安装了java”这意味着安装java谁是卖主机? 我知道这将是很长的时间来执行它,有没有任何建议,使它更好吗?谢谢 – xuweisen

+2

如果你在一个共享的PHP服务器上托管,他们很可能不会安装Java(或者如上面Adam提到的那样会禁用exec)。把一个链接到托管公司,我可能会检查。 –

+0

是的,我问托管公司,他们可以能够执行java的..谢谢你abdullah jibaly :) – xuweisen