2011-04-28 13 views
2

私はJavaで書いた外部ライブラリとコードを使用するプログラムを持っています。しかし、私はそれをWeb経由でアクセス可能にしたい。Perl/CGIスクリプトでJavaプログラムを実行する

私が実行していたWebサーバーを完全に制御できたなら、おそらくTomcatまたはJBossを使用しますが、私の学校ではそのような特権はありません。

サーバ私がインストールされているすべての通常のLinuxグッズでのApache HTTPサーバを持っているアクセス権を持っていない(と思う:PerlやPHPなど)

がどのように私は、このJavaプログラムを実行するPerlスクリプトを書くのでしょうか? 私は "system java MyProgram"や "exec java MyProgram"のような基本を試しましたが、動作していないようです。

私はこれに関する助言や洞察力をお寄せいただきありがとうございます。ありがとうございました!

+0

http://perl.active-venture.com/jpl/docs/Tutorial-callingjava.html –

+0

私はすでにそれを見ました。私は "JPL/Class.pmを見つけることができません"ということを続けています。それがその戦略を断念した理由です。他の図書館やそのようなものを含める必要はありません。 – Joel

+0

サーバにJava VMがインストールされていますか?つまり、 'system(" java -v ")'(あるいはあなたのホスト言語の構文が何であれ)からの出力は何ですか?ターミナルリターン経由 –

答えて

0

CGIスクリプトを実行すると、環境は非常に限定されており、これにはPATHが含まれています。 CGIスクリプトがjavaコマンドを見つけられない可能性がありますか?あるいは、PerlはCGIモード(別名テントモード)のときにsystemコマンドを実行することを単に拒否しています。詳細については、perldoc perlsecを参照してください。

基本的には、PATHを設定して、javaコマンドでsystemコマンドを実行する必要があります。

1

これを試してみてください:

system('/full/path/to/java -cp full_class_path my.class.Name'); 
1

プロセスのプロセスを、

try 
    { 
     process = Runtime.getRuntime().exec("cmd/c start c:\\Perl\\bin\\file.pl"); 

プログラムごとにこのように実行してみてください。

関連する問題