繁体   English   中英

使用外部jar文件编译Java程序

[英]Compile java program using external jar file

我使用Standford核心nlp软件包。 其中给出了一组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

您可以添加到您的命令行-Xmx1024m这将给RAM为1GB您的应用程序,但我宁愿建议你用Java堆profiller像一个嵌在Netbeans的看到这里找出什么是真正的问题。
您也可以参考该帖子,其中提供了更为完整的说明。
什么是Runtime.getRuntime()。totalMemory()和freeMemory()?

我相信现在回答您的问题为时已晚,但这肯定会节省我用来弄清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

对于stanford-core-nlp的Octoboer 2014版本,应将';'(分号)替换为':'(冒号)。应注意,最后一个';'需要空格。 以及上述Java命令中的-Xmx选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM