2011-11-29 79 views
0

我正在開發一個使用數據庫嵌入式設備的Java應用程序(使用CDC Foundation 1.1和jsr 169)。該jsr169 jar文件應該由自舉加載器加載(而不是使用傳統的-classpath選項)Java/CVM - 引導類路徑

爲了運行應用程序,我使用下面的命令

cvm -Xbootclasspath/a:/mylibs/jsr169.jar -cp $CLASSPATH -jar myapp.jar 

但我讀的地方選項-Xbootclasspath不是標準的,使用它會危險嗎?如果是的話,我可以在哪裏放置我的jsr169.jar,以便它可以直接由啓動類加載器加載?

萬分感謝球員

埃利

回答

1

-Xbootclasspath不是一個標準的java選項,所以不同供應商的JVM可能不支持它。

另一個危險在於,它可以用來覆蓋JRE中的標準類 - 如果您的應用程序依賴於這些覆蓋類,那麼您可能在運行於不同JVM或相同JVM的更新版本上時遇到問題。

根據Java SE的文件,重寫標準類打破的Java許可:根據Oracle documentation「使用此選項來覆蓋在rt.jar中類的目的不應該被部署,因爲這樣做會違反應用Java 2運行時環境二進制代碼許可證「。。不過,我沒有在CVM的文檔中看到這樣的警告。由於CDC不包含JDBC類,我想你是安全的。

+1

請注意,修改Bootclasspath不會破壞任何內容。通過_appending_('-Xbootclasspath/a:path')修改bootclasspath的應用程序的部署也不受限制。 –