java.lang.OutOfMemoryError从线程“0”中的UncaughtExceptionHandler抛出;“主要”’;对于大于4GB的文件
使用此工具,调用cityjson。我想将java.lang.OutOfMemoryError从线程“0”中的UncaughtExceptionHandler抛出;“主要”’;对于大于4GB的文件,java,heap,Java,Heap,使用此工具,调用cityjson。我想将cityGML文件转换为cityJSON文件。该文件为4.36 GB,但出现以下错误: java.lang.OutOfMemoryError从线程main中的UncaughtExceptionHandler抛出,或 Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at jdk.internal.reflect.GeneratedConstructorAcc
cityGML
文件转换为cityJSON
文件。该文件为4.36 GB,但出现以下错误:
java.lang.OutOfMemoryError
从线程main
中的UncaughtExceptionHandler
抛出,或
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at jdk.internal.reflect.GeneratedConstructorAccessor183.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at com.sun.xml.bind.v2.ClassFactory.create0(ClassFactory.java:102)
at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.createInstance(ClassBeanInfoImpl.java:255)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.createInstance(UnmarshallingContext.java:672)
at com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader.startElement(StructureLoader.java:158)
at com.sun.xml.bind.v2.runtime.unmarshaller.ProxyLoader.startElement(ProxyLoader.java:30)
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$IntercepterLoader.startElement(ElementBeanInfoImpl.java:223)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:547)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:526)
at com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:45)
at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:216)
at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:150)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:385)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:356)
at org.citygml4j.builder.jaxb.xml.io.reader.JAXBSimpleReader.nextFeature(JAXBSimpleReader.java:133)
at org.citygml4j.tools.command.ToCityJSONCommand.execute(ToCityJSONCommand.java:133)
at org.citygml4j.tools.CityGMLTools.handleParseResult(CityGMLTools.java:102)
at org.citygml4j.tools.CityGMLTools.handleParseResult(CityGMLTools.java:35)
at picocli.CommandLine.parseWithHandlers(CommandLine.java:1526)
at org.citygml4j.tools.CityGMLTools.main(CityGMLTools.java:44)
我找到了一个解决方案,那就是使用
java-Xmx15G
,但我不知道如何实现它。java-Xmx6144M-d64
转到命令行并执行此命令,它会将其设置为64 GB
来源:您可以使用
JAVA\u-OPTS
或CITYGML\u-TOOLS\u-OPTS
环境变量,该变量由CITYGML-TOOLS
可执行文件读取。或者您可以修改citygml工具中的DEFAULT\u JVM\u OPTS
选项
:
#在此处添加默认JVM选项。您还可以使用JAVA_选项和CITYGML_工具_选项将JVM选项传递给此脚本。
默认值_JVM_OPTS=''-Xms1G''
如果您使用的是Linux,则可以在终端中设置:
export JAVA_OPTS=“-Xmx15G”
citygml工具
您可以尝试暴力方法并分配一个非常大的健康空间
格雷普排队
defaultJvmOpts = ['-Xms1G']
只有1 GiB的堆空间
还要确保您使用的是64位Java,并且有足够的ram与OOME无关,OP知道如何修复它。这是关于
citygml工具的
我想这会管用的,但是10分钟后电脑就会关机。这可能是因为没有足够的RAM内存(4 GB,比文件4.36 GB小)?@karin如果计算机关闭,很可能是软件崩溃或过热。你必须调试它,没有办法知道。