1
PHPスクリプト内から小さなJavaクラスを実行しようとしています。 Linux上で期待どおりに動作しますが、同じスクリプトをWindows上で実行されたとき、私は受け取る:PHPで実行するとJavaがクラスを見つけることができず、CLIで同じコマンドが実行される
見つけるか、メインクラスをロードできませんでしたJDBCProxyを
が
ここでは、関連するPHPです:
$classpath = join(PATH_SEPARATOR, array(
dirname(__FILE__).DIRECTORY_SEPARATOR.'JDBCProxy',
dirname(__FILE__).DIRECTORY_SEPARATOR.'JDBCProxy'.DIRECTORY_SEPARATOR.'libs'.DIRECTORY_SEPARATOR.'json-simple-1.1.1.jar',
));
$cmd = sprintf("java -cp '%s' JDBCProxy", $classpath);
...
$process = proc_open($cmd, $descriptorspec, $pipes);
sprintf
の出力は
java -cp 'C:\worker\lib\DB\JDBCProxy;C:\worker\lib\DB\JDBCProxy\libs\json-simple-1.1.1.jar' JDBCProxy
コマンドラインから直接実行すると、期待どおりに動作します。 PHPのコンテキストから実行すると、Javaがクラスを見つけることができないのはなぜですか?
ワウ。ありがとう、友よ。これはコマンドプロンプトで一重引用符で動作するようになると、もっと混乱するようになりましたが、PHPの文脈では二重引用符で囲みます。 –