我正在构建(不是执行!)一个包含 81K 类的可执行 jar。构建这么大的 jar 文件在构建过程中会逐渐变慢,直到抛出 java.lang.OutofMemoryException
。
那么 - 那么如何指定 -Xmx1024m
为构建 jar 时使用的 jvm 提供一些额外的内存空间?
注意
jar
命令不接受任何-D
命令行参数。
现在我尝试设置
export JVM_OPTS=-Xmx1024m
它可能有帮助 - 因为 jar 命令确实有效。但我没有明确的方法来知道它是否确实得到了应用。
最佳答案
设置JVM_OPTS
确实解决了此问题
export JVM_OPTS="-Xmx2048m"
jar -cvfm myjar.jar /tmp/manifest.txt classdir/
其他答案 - 以及结束投票 - 得出的结论是,该OP是关于通过java -jar myjar.jar
执行 jar 文件。
问题是 - 正如 OP 中所述 - 有数以万计的类需要包含 - 并且它压倒了默认的 JVM 设置 - 导致 OOME。我可以看到 jar
命令在最后放弃之前减慢速度。添加 JVM_OPTS 后,构建 jar 不再出现问题。
关于java - 在创建可执行 jar 时指定 JVM 参数(而不是在执行 jar 时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31852624/