2010-04-19 55 views
1

當我設置LD_DEBUG =文件並運行我的Java程序,我發現很多象這樣的錯誤:LD_DEBUG和java

/linux/depot/java-1.6.0_16_32/jre/lib/i386/libjava.so: error: symbol lookup error: undefined symbol: Java_sun_java2d_loops_MaskBlit_MaskBlit (fatal) 

此信息是可怕的,但很明顯,我的程序運行正常。誰能告訴我爲什麼會發生這種情況?

回答

1

這不是可怕的;當您構建代碼以在很多不同平臺上運行時,會發生什麼情況。這只是尋找可選符號的jvm。在這種情況下,與2D和alpha合成有關。如果在運行時未找到符號,則會有一個替代代碼路徑。你可以把它看作是對圖書館的一種反思。

JVM的代碼是這樣的:

TYPE fptr = CAST_TO_FN_PTR(TYPE, dlsym(RTLD_DEFAULT, symbol)); 
if (fptr != NULL) { 
    // Do something different because this platform supports 'symbol' 
} 
+0

@Davon_C_Miller:謝謝! :) – solotim 2010-04-20 03:09:09