.mppファイルから「タスク」をロードしようとしています。 私はjava.util.Date
で現在の日付を取得した場合、それはJAVA
にアクセスするために、非常にうまく動作しますが、私はMPPReaderにアクセスしようとすると、私はエラーを取得する:PHPJAVAブリッジに.jarファイルを含めます。
CreateInstance failed: new net.sf.mpxj.mpp.MPPReader. Cause: java.lang.ClassNotFoundException
は、これは私のテストケースにコードです。
define("JAVA_SERVLET", false);
define("JAVA_HOSTS", 9267);
$mpxjPath = getcwd()."/libs/java/mpxj-5.6.0.jar";
exec("java -cp $mpxjPath");
require_once("libs/java/Java.inc");
$date = new java('java.util.Date');
echo $date;
$project = new java('net.sf.mpxj.mpp.MPPReader');
これは、Javaが到達可能であることを、ブラウザ
Wed Feb 01 08:53:43 CET 2017
Fatal error: Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance failed: new net.sf.mpxj.mpp.MPPReader. Cause: java.lang.ClassNotFoundException: net.sf.mpxj.mpp.MPPReader VM: [email protected]://java.oracle.com/" at:
#-15 java.net.URLClassLoader$1.run(URLClassLoader.java:366)
#-14 java.net.URLClassLoader$1.run(URLClassLoader.java:355)
...
出力ショーで出力されます。しかし、私はどのようにMPPReaderにアクセスできますか?
更新
サーバー:CentOSの7
は、これが今の私のindex.php
のコードです。
<?php
define("JAVA_HOSTS", 9267);
define("JAVA_SERVLET", false);
require_once("libs/java/Java.inc");
echo "<pre>";
$date = new java('java.util.Date');
echo $date;
$project = new java('net.sf.mpxj.mpp.MPPReader');
?>
実行Standalone
コマンドCentOS 7
java -cp "ext/JavaBridge.jar:libs/java/mpxj-5.6.0.jar" php.java.bridge.Standalone SERVLET:9267
にこれはエラーです。 mpxj-5.6.0.jar
をロードするためにあなたの試みを見てみると
Thu Feb 02 07:11:45 CET 2017PHP Fatal error: Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance failed: new java.net.sf.mpxj.mpp.MPPReader. Cause: java.lang.ClassNotFoundException: java.net.sf.mpxj.mpp.MPPReader VM: [email protected]://java.oracle.com/" at:
#-15 java.net.URLClassLoader$1.run(URLClassLoader.java:366)
#-14 java.net.URLClassLoader$1.run(URLClassLoader.java:355)
#-13 java.security.AccessController.doPrivileged(Native Method)
#-12 java.net.URLClassLoader.findClass(URLClassLoader.java:354)
#-11 java.lang.ClassLoader.loadClass(ClassLoader.java:425)
#-10 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
#-9 java.lang.ClassLoader.loadClass(ClassLoader.java:358)
#-8 java.lang.Class.forName0(Native Method)
#-7 java.lang.Class.forName(Class.java:270)
#-6 php.java.bridge.Util.classForName(Util.java:1518)
#-5 php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:445)
#-4 php.java.bridge.Request.handleRequest(Request.java:458)
#-3 php.java.bridge.Request.handleRequests(Request.java:500)
#-2 php.java.bridge.http.ContextRunner.run(Co in http://127.0.0.1:9267/JavaBridge/java/Java.inc on line 195
また、.jarファイルをサーバーのクラスパスに追加します。しかし、私はindex.phpページを実行する場合、私は同じエラーが発生した '例外が発生しました:java.lang.ClassNotFoundException:net.sf.mpxj.mpp.MPPReader'。 –
これはまだ作成されていません;)問題の説明を更新し、サーバー(コマンドラインが適切ならば使用する)、プラットフォーム(windows/unix)を起動し、Tomcat/ServletモードやStandAloneモードを明確にすることができますか?このように、私はもっと正確に答えることができます...あまりにも多くの推測;)_(あなたがindex.phpと呼んでいることを確認するのもいいかもしれません、あなたのスクリプトの例ですか?)_ –
ちょうどコマンドにjarファイルのパスを含めるように小さな編集を行いました。あなたは試みることができますか? –