2017-03-23 389 views
1

我不是一個程序員,我只是想設置與扳回一文件服務器。 這是正常的,索引的過程需要大量的內存,所以當我開始索引我輸入代碼-Xmx512m。但幾個小時後,我已經得到了這些消息:Java堆空間錯誤

java.lang.OutOfMemoryError: Java heap space 
    at org.apache.lucene.util.UnicodeUtil.UTF16toUTF8(UnicodeUtil.java:383) 
    at org.apache.lucene.store.DataOutput.writeString(DataOutput.java:112) 
    at org.apache.lucene.index.FieldsWriter.writeField(FieldsWriter.java:212) 
    at org.apache.lucene.index.StoredFieldsWriterPerThread.addField(StoredFieldsWriterPe 
rThread.java:58) 
    at org.apache.lucene.index.DocFieldProcessorPerThread.processDocument(DocFieldProces 
sorPerThread.java:263) 
    at org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:766) 
    at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:2060) 
    at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:2034) 
    at net.sf.regain.crawler.IndexWriterManager.createNewIndexEntry(IndexWriterManager.j 
ava:758) 
    at net.sf.regain.crawler.IndexWriterManager.addToIndex(IndexWriterManager.java:732) 
    at net.sf.regain.crawler.Crawler.run(Crawler.java:575) 
    at net.sf.regain.crawler.Main.main(Main.java:128) 

我使用JDK 1.8和tomcat7 它在Windows Server 2016 4GB內存上運行,但我不認爲這個過程需要1GB以上內存... 現在我不知道如何解決這個問題... 有誰知道如何解決這個問題?

+0

如果你沒有辦法編輯甚至查看代碼,你可能只是嘗試增加堆空間,這裏是一個已經給出答案,你可以怎麼做:http://stackoverflow.com/ a/1566026/3858121 –

+0

-Xmx1024m -XX:MaxPermSize = 256m將此行添加到eclipse配置的Vm Argumnets中。 –

+0

我投票結束這個問題,因爲它不是[幫助]指南中定義的編程問題。 –

回答

0

嘗試-Xmx512m,而不是-Xnx512m

+0

啊是SRY這個打錯了,我試圖-Xmx512m但THX! –

-1

請建議您使用的Java版本? 下面是一些解決方案,你可以申請.. - >增加堆和permGem空間(臨時修復) - >查找內存泄漏,修復它,然後右鍵高性能的代碼。 - >捕捉java.lang.OutOfMemoryError和自由,你知道可能會使用大量內存的所有資源,密切聯繫等等,然後做一個System.gc()的。 - >使用JDK 1.8:TH歡迎到元空間 - >解決方案是這些標誌添加到JVM命令行,當Tomcat啓動時: -XX:+ CMSClassUnloadingEnabled -XX:+ CMSPermGenSweepingEnabled

希望這將有助於你:-)

+0

Java版本「1.8.0_121」 我會嘗試您的解決方案的感謝! –

+0

@弗洛裏安凱勒爲什麼downvote –

+0

我沒有做downvote,每次我按upvote有一條消息 「感謝您的反饋意見!投票少於15聲譽的人投票記錄,但不改變公開顯示的帖子得分「 –