ant を使用して JSGFDemo をビルドすると、すべて正常に動作します。JSGFDemo.jar ビルド アーティファクトを実行すると、エラーは発生しません。ただし、Eclipse にインポートされたソース フォルダーを使用し、lib/ ディレクトリ内の jar ファイルをビルド パスに追加すると、次のメッセージが表示されてプログラム エラーが発生します。
Problem configuring recognizerProperty exception component:'jsgfGrammar' property:'grammarLocation' - Can't locate resource:/edu/cmu/sphinx/demo/jsapi/jsgf/
edu.cmu.sphinx.util.props.InternalConfigurationException: Can't locate resource:/edu/cmu/sphinx/demo/jsapi/jsgf/
何らかの理由で、ConfigurationManagerUtils.class.getResource(resourceName);
inへの呼び出しはConfigurationManagerUtils.resourceToURL(String location)
、場所 = "resource:/edu/cmu/sphinx/demo/jsapi/jsgf/" に対して異なる結果を返すようです。(null、または有効な URL オブジェクト)
補足として、 getResource("/path/to/a/dir/not/file/"); と思いました。jar 内のパスに解決される場合は無効でした。
私はしばらくこれに頭を悩ませてきましたが、何が間違っているのかわかりません。