我在Windows XP 5.1中使用了Java 1.6中的wsimport(即构建1.6.0-b105)并且我遇到了内存不足异常。我曾经使用JConsole,似乎wsimport进程最大为64 MB。如何为wsimport增加堆内存?
谢谢,
答案 0 :(得分:2)
对我来说,设置环境变量WSIMPORT_OPTS(在另一个答案中建议,显然在旧版本的wsimport中工作)似乎没有任何效果。
对我来说,以下 工作:而不是wsimport
使用
java -classpath $JAVA_HOME/lib/tools.jar com.sun.tools.internal.ws.WsImport
其中$JAVA_HOME
是JDK(不是JRE)根文件夹。
在此Java命令行上,您可以添加所需的任何JVM选项。 (我需要-Djavax.net.debug=all
进行SSL信任调试。)
(我正在使用Ubuntu和OpenJDK 6,包版本为6b20-1.9.7-0ubuntu1。)
答案 1 :(得分:1)
wsimport通过WSIMPORT_OPTS环境变量接受JVM参数。所以在Windows上,尝试在运行wsimport之前在命令行上运行“set WSIMPORT_OPTS = -Xmx512M”,为JVM提供512Mb的堆。
答案 2 :(得分:1)
如果您使用的是足够现代的JDK,则可以使用-Xnocompile
选项,然后以常规方式为javac
进程提供额外的内存。 (尝试wsimport --help
查看您的版本是否支持该标记。)
答案 3 :(得分:1)
wsimport似乎能够使用-J选项传递java参数:
wsimport -J-Xmx1024M ...
应该有用。
答案 4 :(得分:0)
我想通过这个问题。最简单的方法是使用Netbeans(我使用的是v6.8)。将/ etc目录下的Netbeans.conf中的默认内存设置替换为:-J-Xms768m -J-Xmx768m -J-XX:PermSize = 128m并按照常规方法在Netbeans中使用JAX WS创建Web Service Client。从JConsole,我看到在内存中加载~18,500个类的整体往往在~400MB到~650MB之间使用。基于我的WSDL / Schemas生成的类的数量是~1500个类。希望这有助于遇到类似问题的人。
答案 5 :(得分:0)
如下所示(WINDOWS)
set CLASSPATH=<JAVA_HOME>\lib\tools.jar;%classpath%
java -Xmx1024m com.sun.tools.internal.ws.WsImport <YOUR_WSDL>
应该有效