ホームページ >バックエンド開発 >PHPチュートリアル >PHP は JavaBridge を介してパッケージなしで Java クラス ライブラリとカスタム Java クラスを呼び出すことができますが、パッケージを含むカスタム Java クラスを呼び出すとエラーが発生します。解決方法を教えてください。

PHP は JavaBridge を介してパッケージなしで Java クラス ライブラリとカスタム Java クラスを呼び出すことができますが、パッケージを含むカスタム Java クラスを呼び出すとエラーが発生します。解決方法を教えてください。

WBOY
WBOYオリジナル
2016-06-13 12:15:471286ブラウズ

PHP は JavaBridge を介してパッケージなしで Java クラス ライブラリとカスタム Java クラスを呼び出すことができますが、パッケージを含むカスタム Java クラスを呼び出すとエラーが発生します。解決方法を教えてください。
php は、JavaBridge を介してパッケージを使用せずに Java クラス ライブラリとカスタム Java クラスを正常に呼び出しますが、パッケージを使用してカスタム Java クラスを呼び出し、次のようなエラー ログを報告します。 致命的なエラー: Uncaught [[o:例外]: "java.lang .Exception: CreateInstance failed: new cn.org.bjca.test.Test1. 原因: java.lang.ClassNotFoundException: java_require() パスで cn.org.bjca.test.Test1 が見つかりませんでした。パスと SEL およびファイルのアクセス許可を確認してください。VM: [email protected]://java.sun.com/" at: #-9 php.java.bridge.DynamicJavaBridgeClassLoader.loadClass(DynamicJavaBridgeClassLoader.java:278) #- 8 java.lang.Class.forName0(ネイティブメソッド) #-7 java.lang.Class.forName(Class.java:247) #-6 php.java.bridge.SimpleJavaBridgeClassLoader.forName(SimpleJavaBridgeClassLoader.java:158) #- 5 php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:455) #-4 php.java.bridge.Request.handleRequest(Request.java:443) #-3 php.java.bridge.Request.handleRequests(Request) .java:481) #- 2 php.java.bridge.http.ContextRunner.run(ContextRunner.java:145) #-1 php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60) #0 C :ApachehtdocsjavaJava.inc(335) : java_ThrowExceptionProxyFactory->getProxy(1, NULL, 'Could not find ...', false) #1 C:Apache in C:ApachehtdocsjavaJava.inc on line 298
いろいろ試してみたインターネット上で提供されていますが、解決できませんでした。この問題は Windows と Linux の両方で発生します。設定が間違っているのかわかりません。アドバイスをお願いします。
php バージョン: 5.3.5
apache バージョン: 2.2.2
JavaBridge バージョン: 5.4.4
-----ソリューションのアイデア-------- -------------
最近php-java-bridge-6.2.1を使用しましたが、同じ問題が発生しました。解決策は次のとおりです。参考にしてください。オリジナルのポスター。

使用したい jar を java/jre/lib/ext の下に置きます。欠点は、サーバーを再起動する必要があることですが、この問題は問題ありません。

サーバーを再起動せずに Java を正常に呼び出す方法 (JVM をロードする必要があります) を知っている人はいますか?
------解決策のアイデア----------------------
この問題は主に陸進の問題です、私はあなたと同じバージョンの JavaBridge を使用しています。
$here=realpath(dirname($_SERVER["SCRIPT_FILENAME"]));
java_set_library_path($here.PATH_SEPARATOR .'.'); // パスを設定します。 Java 開発パッケージ (クラスまたは jar ファイル) の複数のパスを区切るには、PATH_SEPARATOR を使用して、クロスプラットフォームのサポートを確保します。

この場所の紹介を確認できます http://blog.csdn.net/qq635785620/article/details/7522966

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。