2013-12-04 2 views
1

Я работаю со стандартными пакетами nlp standford. Который дает набор файлов jar и блок выполнения. Я мог бы скомпилировать и запустить несколько тестовых примеров.Компилировать java-программу, используя внешний файл jar

Существует один пример примера Java. я успешно скомпилирован это с:

H:\Drive E\Stanford\stanfor-corenlp-full-2013~>javac -cp stanford-corenlp-3.3.0. 
jar;stanford-corenlp-3.3.0-javadoc.jar;stanford-corenlp-3.3.0-models.jar;stanfor 
d-corenlp-3.3.0-sources.jar; StanfordCoreNlpDemo.java 

В то время как я побежал:

H:\Drive E\Stanford\stanfor-corenlp-full-2013~>java -cp stanford-corenlp-3.3.0. 
jar;stanford-corenlp-3.3.0-javadoc.jar;stanford-corenlp-3.3.0-models.jar;stanfor 
d-corenlp-3.3.0-sources.jar; StanfordCoreNlpDemo 

Это дало исключения:

Searching for resource: StanfordCoreNLP.properties 
Searching for resource: edu/stanford/nlp/pipeline/StanfordCoreNLP.properties 
Adding annotator tokenize 
Adding annotator ssplit 
Adding annotator pos 
Reading POS tagger model from edu/stanford/nlp/models/pos-tagger/english-left3wo 
rds/english-left3words-distsim.tagger ... done [8.7 sec]. 
Adding annotator lemma 
Adding annotator ner 
Loading classifier from edu/stanford/nlp/models/ner/english.all.3class.distsim.c 
rf.ser.gz ... Exception in thread "main" java.lang.OutOfMemoryError: Java heap s 
pace 
     at java.io.ObjectInputStream$HandleTable.grow(ObjectInputStream.java:344 

Как я могу выделить память в командной строке, чтобы удалить выше исключение и выполнить его?

Я мог бы скомпилировать эти два успешно.

java -cp "*" -mx1g edu.stanford.nlp.sentiment.SentimentPipeline -file input.txt 

и

java -cp stanford-corenlp-3.3.0.jar;stanford-corenlp-3.3.0-models.jar;xom.jar;joda-time.jar -Xmx600m edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,parse -file input.txt 

ответ

2

Вы можете добавить это в командной строке -Xmx1024m, которая даст 1 Гб оперативной памяти для вашего приложения, но я предпочел бы посоветовать вам использовать Java кучи profiller как один встроенный в Netbeans see here, чтобы узнать, в чем проблема.
Вы также можете обратиться к этому сообщению, которое имеет гораздо более полное объяснение.
What are Runtime.getRuntime().totalMemory() and freeMemory()?

+0

Я уже использовал netbeans, установил память 'Xmx500,600,800,1000', но никогда не получится. Иногда нет ответа за 15-20 минут, или исключение для памяти из кучи. googled много для любого, как получить выполненный пример, но не удачи – user123

+0

, если вы сталкиваетесь с выводом 'OutOfMemory', это означает, что в этом примере есть утечка памяти. попробуйте использовать профилировщик памяти, интегрированный с netbeans, чтобы узнать, какой объект использует столько ОЗУ https://profiler.netbeans.org/ – Kiwy

+0

Дайте ему ** настоящую ** память. 'java -Xmx4g ...' – Ingo

0

Я считаю, что я слишком поздно, чтобы ответить на ваш вопрос, но это, безусловно, сэкономит чужое время, которое я принял, чтобы выяснить выполнение StanfordCoreNlpDemo.java файла.

H:\Drive E\Stanford\stanfor-corenlp-full-2013~>java -cp stanford-corenlp-3.3.0. 
jar;stanford-corenlp-3.3.0-javadoc.jar;stanford-corenlp-3.3.0-models.jar;stanfor 
d-corenlp-3.3.0-sources.jar; -Xmx1200m StanfordCoreNlpDemo 

Для версии Стэнфордского-колонкового NLP, Octoboer 2014 «;» (точка с запятой) следует заменить на «:» (двоеточие) Следует отметить, что существует пространство, необходимое в прошлом " ;» и -Xmx в приведенной выше java-команде.

Смежные вопросы