设置系统属性
我试图按照此说明嵌入运行门设置系统属性
它说:“系统属性gate.home应设置为门安装目录。” (http://gate.ac.uk/wiki/code-repository/)
我该怎么做?
此外,当我尝试运行EmbeddedAnnie的示例代码时,出现以下错误: (我不知道它是否相关)。
Initialising GATE...
GATE home system property ("gate.home") not set.
Attempting to guess...
Using "C:\Program Files (x86)\GATE-6.0" as GATE Home.
If this is not correct please set it manually using the -Dgate.home option in yo
ur start-up script
Using C:\Program Files (x86)\GATE-6.0 as GATE home
Using C:\Program Files (x86)\GATE-6.0\plugins as installed plug-ins directory.
Using C:\Program Files (x86)\GATE-6.0\gate.xml as site configuration file.
Using C:\Users\UNST\gate.xml as user configuration file
Using C:\Users\UNST\gate.session as user session file
Exception in thread "main" java.lang.NoClassDefFoundError: gate/creole/gazetteer
/AbstractGazetteer
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
1)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:296)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:296)
at gate.util.GateClassLoader.loadClass(GateClassLoader.java:63)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at gate.creole.CreoleAnnotationHandler.processAnnotationsForResource(Cre
oleAnnotationHandler.java:193)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotati
onHandler.java:169)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotati
onHandler.java:173)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotati
onHandler.java:173)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotati
onHandler.java:157)
at gate.creole.CreoleRegisterImpl.processFullCreoleXmlTree(CreoleRegiste
rImpl.java:358)
at gate.creole.CreoleRegisterImpl.parseDirectory(CreoleRegisterImpl.java
:341)
at gate.creole.CreoleRegisterImpl.registerDirectories(CreoleRegisterImpl
.java:306)
at gate.Gate.initCreoleRepositories(Gate.java:449)
at gate.Gate.init(Gate.java:230)
at StandAloneAnnie.main(StandAloneAnnie.java:69)
Caused by: java.lang.ClassNotFoundException: gate.creole.gazetteer.AbstractGazet
teer
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 27 more
泰德。
System.setProperty("gate.home", "/some/directory");
欲了解更多信息,请参见:
你可以通过几种方法做到这一点。
一个是当你运行你的应用程序,你可以通过它一个标志。
java -Dgate.home="http://gate.ac.uk/wiki/code-repository" your_application
还是一段代码,需要这个属性集编程之前在代码中设置它。对于System
宽配置,Java保留Properties
对象。
Properties props = System.getProperties();
props.setProperty("gate.home", "http://gate.ac.uk/wiki/code-repository");
+1 - 但是,以编程方式设置系统属性的问题在于,您需要尽早做到这一点;即在“门”代码使用属性值之前。 – 2011-03-04 05:16:26
@StephenC,是的,就像设置'java.system.class.loader'等。 – Pacerier 2014-08-23 10:22:59
@Prier - 这是一个属性的例子,* only *在从命令行设置时起作用。 – 2014-08-23 15:06:44
System.setProperty("gate.home", "/some/directory");
之后,你可以通过调用
String value = System.getProperty("gate.home");
请解释一下。 – Lakshmi 2014-03-19 11:55:07
对于JBoss,在standalone.xml,把后来经过检索其值。
<extensions>
</extensions>
<system-properties>
<property name="my.project.dir" value="/home/francesco" />
</system-properties>
为Eclipse:
http://www.avajava.com/tutorials/lessons/how-do-i-set-system-properties.html?page=2
我一路来到这!!不知何故,在JBoss中,我们设置系统属性的其他地方不起作用。 – ulab 2017-01-20 16:49:00
你需要你的地方GATE安装的插件目录的路径。因此,如果安装在“/home/user/GATE_Developer_8.1”门,代码如下:
System.setProperty("gate.home", "/home/user/GATE_Developer_8.1/plugins");
您不必在命令行设置gate.home。您可以在您的应用程序中设置它,只要您在调用Gate.init()之前设置它即可。
那么我在主要功能中这样做? – Flethuseo 2011-03-04 05:12:59
@Flethuseo,是的,这应该是一个简单的应用程序的罚款。 – 2011-03-04 05:14:15