相关疑难解决方法(0)

在Windows中设置默认堆大小

我想永久设置Java堆大小,并且不希望运行带有选项的每个jar文件.我使用Windows和Java 1.7.

java windows heap-memory

20
推荐指数
2
解决办法
11万
查看次数

如何在MonoDevelop中编译MonoDroid应用程序时修复"OutOfMemoryError:java堆空间"

当我尝试编译(不执行)我的一个项目时,我最近收到以下错误:

Tool /usr/bin/java execution started with arguments: -jar /Applications/android-sdk-mac_x86/platform-tools/lib/dx.jar --no-strict --dex --output=obj/Debug/android/bin/classes.dex obj/Debug/android/bin/classes /Developer/MonoAndroid/usr/lib/mandroid/platforms/android-8/mono.android.jar FlurryAnalytics/Jars/FlurryAgent.jar Jars/android-support-v4.jar 

    UNEXPECTED TOP-LEVEL ERROR:
    java.lang.OutOfMemoryError: Java heap space
        at com.android.dx.rop.code.RegisterSpecSet.<init>(RegisterSpecSet.java:49)
        at com.android.dx.rop.code.RegisterSpecSet.mutableCopy(RegisterSpecSet.java:383)
        at com.android.dx.ssa.LocalVariableInfo.mutableCopyOfStarts(LocalVariableInfo.java:169)
        at com.android.dx.ssa.LocalVariableExtractor.processBlock(LocalVariableExtractor.java:104)
        at com.android.dx.ssa.LocalVariableExtractor.doit(LocalVariableExtractor.java:90)
        at com.android.dx.ssa.LocalVariableExtractor.extract(LocalVariableExtractor.java:56)
        at com.android.dx.ssa.SsaConverter.convertToSsaMethod(SsaConverter.java:50)
        at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:99)
        at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:73)
        at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:273)
        at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:134)
        at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:87)
        at com.android.dx.command.dexer.Main.processClass(Main.java:487)
        at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459)
        at com.android.dx.command.dexer.Main.access$400(Main.java:67)
        at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:398)
        at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
        at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
        at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
        at com.android.dx.command.dexer.Main.processOne(Main.java:422)
        at com.android.dx.command.dexer.Main.processAllFiles(Main.java:333)
        at com.android.dx.command.dexer.Main.run(Main.java:209)
        at com.android.dx.command.dexer.Main.main(Main.java:174)
        at com.android.dx.command.Main.main(Main.java:91)
Run Code Online (Sandbox Code Playgroud)

其他项目按预期建造.我想我需要增加这个java构建步骤的堆大小?但是怎么样?

android build monodevelop xamarin.android xamarin

12
推荐指数
2
解决办法
1万
查看次数

如何以编程方式增加Java堆大小

我有一个用于搜索文件的java桌面应用程序,它通常很快就会达到默认的堆限制.我无法访问将要安装的所有系统,因此我想在应用程序本身中增加JVM堆大小.任何人都可以帮助我如何在我的应用程序中以编程方式执行此操作

java heap size

10
推荐指数
3
解决办法
1万
查看次数

如何在OS X上全局设置java系统属性?

短篇故事

我需要一种系统级方法java.awt.headlesstrue 为所有java调用设置属性.也就是说,使用-Djava.awt.headless=true不是一个选项,因为java是从我无法访问的地方调用的(例如来自用Java/C /等编写的另一个工具).

很长的故事

我正在使用一堆用Java编写的工具(特别是Adobe的Air ADT),这些工具依赖于AWT类.当我在控制台上运行这些工具时,它们工作正常.但是,当我从SSH会话中运行它们时,它们会失败java.lang.InternalError: Can't connect to window server - not enough permissions.谷歌搜索我发现将java.awt.headless设置为true将解决问题.它没有,这是因为ADT本身不会 产生儿童Java进程-Djava.awt.headless=true.

是否有任何系统级方法来确保在调用Java时设置此属性?也许一些系统awt属性文件或等价物?

最糟糕的情况我可以尝试替换/usr/bin/java添加此参数的shell脚本,"$@"但我希望避免这种情况.(更新:为了确保我的理论是正确的,尝试这个shell脚本破解它确实解决了问题.只是希望有一个更清洁的解决方案)

java air headless

10
推荐指数
2
解决办法
7560
查看次数

增加Linux机器上的堆大小

我在Ubuntu台式机上工作,我想增加Java的堆大小.RAM为16GB,当前Max Heap Size为3GB

我查了这篇帖子后增加Tomcat堆大小

关于Ubuntu的发现不多,所以我尝试了这个命令:

java -Xmx10000m -X2000m -XshowSettings:all
Run Code Online (Sandbox Code Playgroud)

结果是:

Min Heap Size: 1.95G
Max Heap Size: 9.77G
Run Code Online (Sandbox Code Playgroud)

然后 sudo gedit /etc/tomcat7/default

并将此lino更改为:

JAVA_OPTS="-Djava.awt.headless=true -Xmx10000m -XX:MaxPermSize=2000m" 
Run Code Online (Sandbox Code Playgroud)

但后来我重新启动了机器,检查了最大尺寸:

java -XshowSettings:all
Run Code Online (Sandbox Code Playgroud)

这表明:

Max Heap Size (Estimated): 3.80GB
Run Code Online (Sandbox Code Playgroud)

我想利用我得到的高RAM(16 GB).还有什么我能做的吗?

java linux performance tomcat ubuntu-12.04

8
推荐指数
2
解决办法
8万
查看次数

Java系统环境变量

Java是否有一个默认的系统环境变量,在我们设置它时将始终读取/追加?CATALINA_OTPS/ JAVA_OPTSetc似乎只适用于TOMCAT/JBOSS等.

  1. 我不想通过Java系统属性(通过-Dprop1 = value1 -Dprop2 = value2传入)来设置它,因为它涉及shell /批处理脚本.
  2. 它应该适用于操作系统,例如在Windows中双击jar文件.
  3. 它应该适用于不同的JRE(Sun,IBM,OpenJDK等).
  4. 它不应该涉及额外的编码.
  5. 它应该在大多数库配置文件中工作,比如设置log4j level $ {LOG_LEVEL}.

更新:添加了项目#4和5.从标题中删除操作系统以使我的问题更清晰.

更新2:在查看Perception的答案后,似乎我的第2项和第3项可以通过实现System.getenv.如何实现第4项和第5项?

以下是场景示例:Imagine现在JAVA_DEFAULT_OPTS是一个环境变量,将由Java读取,因为它现在已成为标准.在开发台式机上,我设置JAVA_DEFAULT_OPTS=-DLOG_LEVEL=DEBUG -Xmx384m; 在生产服务器机器上,客户设置JAVA_DEFAULT_OPTS=-DLOG_LEVEL=INFO -Xmx1024m.当我/用户双击Windows上的jar文件时,应用程序将运行不同的log4j级别和最大内存堆大小.

java environment-variables

7
推荐指数
1
解决办法
2万
查看次数

如何设置Java(xmx)的默认最大堆大小,对于linux(centos)

我的服务器中有许多运行在crons中的小型java程序.我有一个openvz VPS,而java与内存和openvz非常混淆.

到目前为止,我提出的最佳解决方案是运行我的程序:

java -Xmx16m class
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我有很多程序正在运行,我想为所有系统设置默认的最大堆,这样我就不会更改所有启动脚本,也不必记得每次写时都这样做一个新的.

我试图找到一种方法来设置/更改我的CentOS系统的全局默认值,但我没有运气!

如果有人能帮助我,我将不胜感激.

谢谢.

java heap size

4
推荐指数
1
解决办法
3万
查看次数

关于增加JVM的堆大小

我用线程开发了聊天应用程序.但是当我启动我的应用程序时,系统行为非常缓慢,并且有时异常发生堆已满.我想增加Java虚拟机的堆大小.我该怎么做?

java jvm

4
推荐指数
1
解决办法
1万
查看次数

如何强制操作系统给java更多的内存?

我有java jar文件和内存的问题.

我使用netbeans 6.7开发一个应用程序,这个应用程序需要更多的内存来运行,因为它转换了另一个文件.每当这个应用程序转换一个6-10 MB的文件时,它就会崩溃.所以我设置netbeans VM选项:-Xms32m -Xmx256m,应用程序可以转换6-10mb文件没有问题.

我清理并构建项目,以便它可以生成我的应用程序的jar文件.我在计算机上运行jar并使用jconsole监视内存.应用程序使用的最大内存为256 MB.但每当我将它移动到其他计算机时,它在jconsole上显示65-66 mb,并且在转换6-10 mb文件时应用程序将崩溃.所以我需要使用命令提示符:java -jar -Xmx256m myjar.jar来执行具有最大内存的jar

为什么会发生这种情况,在我的计算机中,最大内存显示为256 MB,而另一台计算机显示为65-66 mb?我可以强制另一台计算机为我的应用程序提供额外的最大内存吗

谢谢您的回答.对不起英语不好,我很抱歉.如果你们都觉得我的问题很难理解,请告诉我.

最好的祝福

丹尼

ps:fyi我用来开发应用程序的计算机有2gb ram,在我测试的其他计算机上有1-2 gb ram.

java operating-system netbeans memory-management jar

3
推荐指数
1
解决办法
5406
查看次数

如何覆盖 JVM 选项中的 -Xmx50m?

我当时正在使用一个工具。JVM 选项是可配置的。

最近,我收到 OutOfMemoryError 因此我在选项配置中添加 -Xmx1024m ,如下所示。

config.properties:JVM_OPTION =“-Xmx4096m -XX:-UseGCOverheadLimit”

之前的cmd日志:java -Xms16777216 -Xmx50m com.f.Startmain

现在的cmd日志:java -Xms16777216 -Xmx50m com.f.Startmain -Xmx4096m -XX:-UseGCOverheadLimit

该工具现在仍然内存不足,因为 -Xmx4096m 没有覆盖旧的。该工具不可修改,配置只是在命令末尾添加新选项。

有人知道在 JVM 选项中覆盖 -Xmx50m 的方法吗?

java out-of-memory jvm-arguments

1
推荐指数
1
解决办法
4067
查看次数