2017-01-07 1 views
2

ゲートエンベッドを使用していくつかのエンティティを抽出しようとしています。 私は binとlibフォルダ からjarファイルを含め、これはコードです:Javaゲートが組み込まれています

Out.prln("Initialising GATE..."); 
    Properties props = System.getProperties(); 
    props.setProperty("gate.home", "/Applications/GATE_Developer_8.2"); 
    SwingUtilities.invokeAndWait(new Runnable() { 
     public void run() { 
      MainFrame.getInstance().setVisible(true); 
      try { 
       Factory.newDocument("This is a document"); 
      } catch (ResourceInstantiationException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 

が、私はいつも次の例外を取得します。誰かが私が間違っていることを知っていますか?ありがとう

Exception in thread "main" java.lang.reflect.InvocationTargetException 
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1312) 
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1287) 
    at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1348) 
    at gate.Gate.main(Gate.java:25) 
Caused by: java.lang.NoSuchMethodError: gate.Gate.getUserConfig()Lgate/util/OptionsMap; 
    at gate.swing.XJFileChooser.getLocations(XJFileChooser.java:140) 
    at gate.swing.XJFileChooser.<init>(XJFileChooser.java:70) 
    at gate.gui.MainFrame.<init>(MainFrame.java:493) 
    at gate.gui.MainFrame.getInstance(MainFrame.java:352) 
    at gate.gui.MainFrame.getInstance(MainFrame.java:348) 
    at gate.Gate$1.run(Gate.java:27) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:749) 
    at java.awt.EventQueue.access$500(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:702) 
    at java.awt.EventQueue$3.run(EventQueue.java:696) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:719) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 
+0

メインクラスの名前とパッケージは何ですか?それは 'gate.Gate'ですか? – dedek

答えて

0

クラスがクラスパスにありますが、そのバージョンがニーズに合っていないため、このエラーがあります。クラスが見つかりましたが、このクラスのバージョンには存在しないメソッドを呼び出します。

もっと最近のバージョンのGATEライブラリを使うべきだと思います。

例えば、このバージョンhttps://gate.ac.uk/releases/gate-3.1-build2270-ALL/doc/javadoc/は、公開方法OptionsMap getUserConfig()を提供するthe gate.Gateクラスを含みます。

+0

あなたの最初の段落は正しいですが、GATEライブラリのバージョンは問題ないと思います。私の答えを見て... – dedek

0

スタックトレースを見ると、メインクラスの名前はgate.Gate - GATEライブラリの中央クラスと同じ名前だと思います。そしてこの名前の衝突は問題を引き起こします。

クラスの名前を変更するか、パッケージを変更するだけでエラーはなくなります。

関連する問題