2012-05-09 5 views
2

でPHPの* .javaファイルまたは* .jarファイルを実行して、私はすでにそれは私のコンピュータではlocalhostです。このコードウェブサイト

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'); 

で、私のXAMPPのPHPの* .javaファイルまたは* .jarファイルを実行することができています。

今、私はウェブサイトのインターネットに自分のコーディングをホストしたいと思います。私はjavaがexecラインを実行して実行したくないと恐れています。 exec * .javaまたは* .jarをWebサイトで実行できるようにするにはどうすればよいですか?

私はtomcatまたはjavabridgeをインストールする必要があると聞きました。しかし、私は理解していません。手伝って頂けますか?どうもありがとう。

+1

は、ホスティングサービスは、 'exec'機能を可能にすることをあなたは確かにありますか?これは、セキュリティ対策としてオフにすることができる。 –

+0

私はわからないんだけどT_T ..私はあなたに男に尋ねる私はどうすればいいですか:( – 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

ええ、私はホスティング会社に頼んで、彼らはできるようにすることができますexec java ..あなたにabdullahジバールありがとう:) – xuweisen