亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3901 | 回復: 3
打印 上一主題 下一主題

java加載so庫的問題 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2006-03-10 10:39 |只看該作者 |倒序瀏覽
我的java程序中加載了一個c寫的so庫,然后java作為api接口供php調(diào)用,現(xiàn)在遇到了一個問題,就是php調(diào)用java時,java會去連so庫,然后第一次頁面顯示正常,再刷新就出現(xiàn)問題了,錯誤提示如下:
Fatal error: Uncaught [o(Exception):"java.lang.Exception: CreateInstance failed: new StreamFountJava.SFountAPI. Cause: java.lang.UnsatisfiedLinkError: Native Library /usr/lib/libsfount_api.so already loaded in another classloader"] thrown in /home/mbos/php_java.php on line 10
再刷新出現(xiàn):
Fatal error: Uncaught [o(Exception):"java.lang.Exception: CreateInstance failed: new StreamFountJava.SFountAPI. Cause: java.lang.ClassNotFoundException: Unresolved external reference: java.lang.NoClassDefFoundError. -- Unable to call constructor because it or one of its parameters refer to the mentioned external class which is not available in the current "java_require()" url path. Remember that all interconnected classes must be loaded with a single java_require() call, i.e. use java_require("foo.jar;bar.jar") instead of java_require("foo.jar"); java_require("bar.jar"). Please check the Java Bridge log file for details."] thrown in /home/mbos/php_java.php on line 10

StreamFountJava.SFountAPI是我做的一個package,已將其打成.jar給php調(diào)用了,libsfount_api.so 是我的so庫

第一次是顯示正常的!
再次刷新產(chǎn)生的錯誤是由于第一個錯誤引起的,因為第一個錯誤提示說我的so庫已經(jīng)存在于其他的classloader中了,所以導致第二次刷新的時候出錯,天呢,調(diào)用so庫的不是同一個.jar里的class嘛

我的想法:能不能在java運行完釋放掉so庫?能釋放嗎?

順便提一下無關的問題,我在VMware里的linux下執(zhí)行刷新頁面不會出錯,只有重新將我的SFountAPi.class連同目錄打包成.jar后才會出現(xiàn)上述問題,可是在純正的linux環(huán)境下直接刷新就會出現(xiàn)這個問題,這是為什么?
PS:重啟apache就能再正確顯示一次

我用的是apache2+php5+php-java-bridge來完成php調(diào)用java的。

論壇徽章:
0
2 [報告]
發(fā)表于 2006-03-10 11:47 |只看該作者
你是把System.loadLibrary寫在你的類的static {}中了么?如果是的話,恐怕是你的類在每次刷新頁面的時候被不同的ClassLoader給加載了。我對Tomcat的ClassLoader的層次不熟

論壇徽章:
0
3 [報告]
發(fā)表于 2006-03-10 12:33 |只看該作者
我確實是把System.loadLibrary寫在我的類的static {}里了,但是我也試過寫在構(gòu)造函數(shù)里,似乎得到的是同樣的結(jié)果

我用的不是Tomcat,用的是Apache

論壇徽章:
0
4 [報告]
發(fā)表于 2006-03-10 14:25 |只看該作者
我對php-java bridge不是很熟悉。會不是java_require()的使用方法的問題?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP