Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.OutOfMemoryError从线程“0”中的UncaughtExceptionHandler抛出;“主要”’;对于大于4GB的文件_Java_Heap - Fatal编程技术网

java.lang.OutOfMemoryError从线程“0”中的UncaughtExceptionHandler抛出;“主要”’;对于大于4GB的文件

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

使用此工具,调用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.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如果计算机关闭,很可能是软件崩溃或过热。你必须调试它,没有办法知道。