2011-02-17 104 views
7

由於一個小的實現錯誤,我發現我的速度可以達到Java堆空間的問題小程序:Java堆空間

現在的錯誤是固定的一切都很好,但它確實讓我尋找到如何解決這一點,我foudn多種解決方案,如

的Java -Xms5m -Xmx15m MyApp的

的問題是,這改變了我的計算機上的Java內存,但我正在那將是一個小程序在webrowser中使用。

因此,有沒有辦法在APPLET的RUNTIME中更改堆大小?

回答

10

您可以將參數添加到小程序標記。但是您感興趣的參數僅在Java6 u10或更高版本上可用。

實施例:

<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300"> 
    <PARAM name="java_arguments" value="-Xmx256m"> 
</APPLET> 

在這裏的詳細信息http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#JAVA_ARGUMENTS

+0

額外存儲器也經由部署的Applet來定義。 JNLP,但這是更簡單的方法。請特別注意小應用程序Wiki中的最後兩個鏈接(http://stackoverflow.com/tags/applet/info)。請打開鏈接和示例。 (竊竊私語)希望這個線程的其他貢獻者會學到一兩件事。 ;) – 2011-02-17 08:41:55

2

AFAIK,只有用戶可以更改JRE堆設置。 Applet無法更改此設置。

更新:

看來,在JDK的最新版本,這是可能的。請看:How can I start an Java applet with more memory?

UPDATE2:

內存設置只能爲JNLP應用程序設置,而不是小程序。

1

如果未在命令行中指定它,則必須從JVM設置中獲取它。因此,當您將小應用程序部署到網絡上時,它將取決於它們在運行時在其計算機上具有的內存設置。通常它默認設置爲60-90Mb,所以請儘量保持它。

考慮一下applet是否可以改變這些設置的後果......還有什麼可以改變的。這只是要求最終實現安全漏洞,而Java旨在實現功能之前的安全性:)

1

JVM可能早在Applet之前已經開始。現在到 更改堆大小已經太晚了。試用Java Web Start,您可以控制它,爲您的Applet /應用程序產生一個新的JVM。