2013-03-31 21 views
0

使用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內的路徑時無效。

我一直對我的頭撞了一會兒,看不到我做錯了什麼。

+0

缺少資源的唯一原因是缺少資源。這個錯誤意味着你的類路徑中沒有相應的路徑。可能您以不同的方式命名了該軟件包,並且未更改config.xml文件中的路徑。您需要提供更多關於您的項目佈局的信息,您的項目的文件結構是什麼等,才能獲得更有意義的答案。 –

+0

@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

回答

1

我相信找到了問題。默認情況下,Eclipse似乎以不同的方式構造該jar,從而爲目錄留下條目。

使用unzip -v調查存檔可以發現一些有趣的細節。從使用Ant構建

文件:使用eclipse

Archive: JSGFDemo.jar 
Length Method Size Cmpr Date Time CRC-32 Name 
-------- ------ ------- ---- ---------- ----- -------- ---- 
     0 Stored  0 0% 2013-03-31 03:13 00000000 META-INF/ 
    284 Defl:N  210 26% 2013-03-31 03:13 ddd976ff META-INF/MANIFEST.MF 
     0 Stored  0 0% 2013-03-31 03:08 00000000 edu/ 
     0 Stored  0 0% 2013-03-31 03:08 00000000 edu/cmu/ 
     0 Stored  0 0% 2013-03-31 03:13 00000000 edu/cmu/sphinx/ 
     0 Stored  0 0% 2013-03-31 03:12 00000000 edu/cmu/sphinx/demo/ 
     0 Stored  0 0% 2013-03-31 03:13 00000000 edu/cmu/sphinx/demo/jsapi/ 
     0 Stored  0 0% 2013-03-31 03:13 00000000 edu/cmu/sphinx/demo/jsapi/jsgf/ 
    7391 Defl:N  3501 53% 2013-03-31 03:13 938438dd edu/cmu/sphinx/demo/jsapi/jsgf/JSGFDemo.class 
    798 Defl:N  326 59% 2013-03-31 03:13 647722fc edu/cmu/sphinx/demo/jsapi/jsgf/books.gram 
    204 Defl:N  140 31% 2013-03-31 03:13 789bb514 edu/cmu/sphinx/demo/jsapi/jsgf/commands.gram 
    9295 Defl:N  1500 84% 2013-03-31 03:13 3b519044 edu/cmu/sphinx/demo/jsapi/jsgf/jsgf.config.xml 
    1589 Defl:N  473 70% 2013-03-31 03:13 60075af0 edu/cmu/sphinx/demo/jsapi/jsgf/movies.gram 
    299 Defl:N  195 35% 2013-03-31 03:13 42e94d32 edu/cmu/sphinx/demo/jsapi/jsgf/music.gram 
    666 Defl:N  288 57% 2013-03-31 03:13 ca4b72f9 edu/cmu/sphinx/demo/jsapi/jsgf/news.gram 
--------   ------- ---       ------- 
    20526    6633 68%       15 files 

罐出口:

Archive: JSGFDemo-eclipse.jar 
Length Method Size Cmpr Date Time CRC-32 Name 
-------- ------ ------- ---- ---------- ----- -------- ---- 
    180 Defl:N  134 26% 2013-03-31 23:35 1e681d3b META-INF/MANIFEST.MF 
    7338 Defl:N  3537 52% 2013-03-31 23:29 ed8c4c3f edu/cmu/sphinx/demo/jsapi/jsgf/JSGFDemo.class 
    798 Defl:N  326 59% 2013-03-31 13:21 647722fc edu/cmu/sphinx/demo/jsapi/jsgf/books.gram 
    204 Defl:N  140 31% 2013-03-31 13:21 789bb514 edu/cmu/sphinx/demo/jsapi/jsgf/commands.gram 
    9295 Defl:N  1500 84% 2013-03-31 13:21 3b519044 edu/cmu/sphinx/demo/jsapi/jsgf/jsgf.config.xml 
    1589 Defl:N  473 70% 2013-03-31 13:21 60075af0 edu/cmu/sphinx/demo/jsapi/jsgf/movies.gram 
    299 Defl:N  195 35% 2013-03-31 13:21 42e94d32 edu/cmu/sphinx/demo/jsapi/jsgf/music.gram 
    666 Defl:N  288 57% 2013-03-31 13:21 ca4b72f9 edu/cmu/sphinx/demo/jsapi/jsgf/news.gram 
--------   ------- ---       ------- 
    20369    6593 68%       8 files 

快速谷歌後,我發現在Eclipse的JAR導出嚮導 「添加目錄條目」 選項。