我正在GATE
从法语文档中提取文本。我已经有一个问题TreeTagger
,并Cygwin
就Windows
在GATE GUI,这是我解决了投入的系统环境,而不是如下所示的线C:\Cygwin\bin\sh.exe;C:\cygwin\bin
C:/cygwin2/bin/sh.exe;C:/cygwin2/bin
,并创造了build.properties
在GATE的根文件,并把下面的线就可以了
run.shell.path: C\:\\cygwin2\\bin\\sh.exe
现在,我有我最喜欢的管道,它可以通过GATE GUI在法语文本上正常工作。我通过“保存应用程序状态”保存了管道,并且知道我想通过NetBeans加载并执行它。
但是,当Netbeans初始化GATE并加载我保存的管道并添加我的语料库和文档时,它找不到POS的cygwin路径。我得到了error = 193,并且我想这意味着它找不到build.properties文件路径,该路径用于解决由TreeTagger标记的sh.exe文件。
这是我的代码:
public static void main(String[] args) throws Exception {
CorpusController FrenchController;
Gate.init();
MainFrame.getInstance().setVisible(true);
File GateHome = Gate.getGateHome();
File FrenchGapp = new File(GateHome,"appTest.xgapp");
FrenchController = (CorpusController)PersistenceManager.loadObjectFromFile(FrenchGapp);
Corpus corpus = Factory.newCorpus("TestCorpus");
FrenchController.setCorpus(corpus);
File docFile = new File("D:\\Amin\\Project\\DropBox\\Donnees\\7_doc.xml");
Document doc = Factory.newDocument(docFile.toURL(), "utf-8"); //encoding
corpus.add(doc);
FrenchController.execute();
corpus.clear();
}
------------------------执行后在GATE上出现错误--------------------- ---
C:\GATE\plugins\Tagger_Framework\resources\TreeTagger\tree-tagger-french-gate-utf8 C:\Users\Amin\AppData\Local\Temp\tagger6897917088215914126.txt
Exception in thread "main" gate.creole.ExecutionException: java.io.IOException: Cannot run program "C:\GATE\plugins\Tagger_Framework\resources\TreeTagger\tree-tagger-french-gate-utf8": CreateProcess **error=193**, %1 is not a valid Win32 application
at gate.taggerframework.GenericTagger.runTagger(GenericTagger.java:489)
at gate.taggerframework.GenericTagger.execute(GenericTagger.java:245)
at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
at gate.creole.SerialController.runComponent(SerialController.java:221)
at gate.creole.SerialController.executeImpl(SerialController.java:153)
at gate.creole.SerialAnalyserController.executeImpl(SerialAnalyserController.java:125)
at gate.creole.AbstractController.execute(AbstractController.java:75)
at secondshot.SecondShot.main(SecondShot.java:84)
Caused by: java.io.IOException: Cannot run program "C:\GATE\plugins\Tagger_Framework\resources\TreeTagger\tree-tagger-french-gate-utf8": CreateProcess error=193, %1 is not a valid Win32 application
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
at java.lang.Runtime.exec(Runtime.java:617)
at gate.util.ProcessManager.runProcess(ProcessManager.java:84)
at gate.util.ProcessManager.runProcess(ProcessManager.java:66)
at gate.taggerframework.GenericTagger.runTagger(GenericTagger.java:478)
... 7 more
Caused by: java.io.IOException: CreateProcess error=193, %1 is not a valid Win32 application
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:385)
at java.lang.ProcessImpl.start(ProcessImpl.java:136)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)
... 11 more
谢谢你的时间
我认为,该build.properties
文件仅在运行GATE Developer时是只读的。请参阅文档http://gate.ac.uk/userguide/sec:gettingstarted:sysprop
...使用GATE Embedded时,可以在调用Gate.init()之前设置这些属性的值。
在您的应用程序中,可以shell.path
在调用之前检查属性是否设置正确FrenchController.execute()
。只是打电话System.getProperty("shell.path")
看看...
如果不是,则可以使用
System.setProperty("shell.path", "C:\\cygwin2\\bin\\sh.exe")
在调用之前,在代码中的某个位置FrenchController.execute()
。
或者在中NetBeans
,您可以按照此答案中的说明进行设置:https : //stackoverflow.com/a/7839141/1857897
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句