使用ant构建JSGFDemo时,一切正常。运行JSGFDemo.jar构建工件没有任何错误。然而,使用在eclipse导入的源文件夹时,并添加在lib /目录的罐子到构建路径,使用以下信息的程序中的错误:狮身人面像语法位置无法找到资源
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.resourceToURL(String location)
看似返回调用ConfigurationManagerUtils.class.getResource(resourceName);
location =“resource:/ edu/cmu/sphinx/demo/jsapi/jsgf /”的不同结果。 (null,或者一个有效的URL对象)
作为旁注,我认为getResource(“/ path/to/a/dir/not/file /”);在它解析为jar内的路径时无效。
我一直对我的头撞了一会儿,看不到我做错了什么。
缺少资源的唯一原因是缺少资源。这个错误意味着你的类路径中没有相应的路径。可能您以不同的方式命名了该软件包,并且未更改config.xml文件中的路径。您需要提供更多关于您的项目布局的信息,您的项目的文件结构是什么等,才能获得更有意义的答案。 –
@NikolayShmyrev从我可以告诉,罐子有相同的文件结构。看看他们,如果你想要的话:https://docs.google.com/file/d/0B4ayCXFZPsx8aU5DeGRXb1VpNm8/edit 我不明白如果我附加一些特定文件的文件名,但是,如资源:/ edu/cmu/sphinx/demo/jsapi/jsgf/commands.gram,但显然这在sphinx尝试引用资源时不起作用:/edu/cmu/sphinx/demo/jsapi/jsgf/command.gram/command 。公克 – remuladgryta