簡體   English   中英

我無法在cmd中生成CUP解析器和JFlex掃描器

[英]I cant generate CUP parser and JFlex scanner in cmd

我是編譯器新手。 我讀過我可以通過此代碼在cmd中生成xxx.flex文件:

java JFlex.Main xxx.flex

但我得到這個錯誤:

錯誤:找不到或加載主類JFlex.Main

為了生成yyy.cup,我輸入了:

java java_cup.Main yyy.cup

但我也收到此錯誤:

錯誤:找不到或加載主類java_cup.Main

我感到困惑...我該怎么辦?

調用時

java JFlex.Main xxx.flex

您要求Java加載JFlex.Main類並傳遞xxx.flex作為參數。 由於您沒有告訴Java JFlex.Main類在哪里,因此Java在其類路徑中搜索它,如果您沒有將JFlex jar文件添加到類路徑中,則會導致錯誤消息

Error: Could not find or load main class JFlex.Main

順便說一句,類名和名稱空間區分大小寫:在JFlex jar文件中, Main類位於jflex目錄中,而不是JFlex因此您需要調用jflex.Main類...除非您以前使用的是JFlex版本到1.5(在JFlex合法的情況下)。

要讓Java查找類:

  • 要么更改系統類路徑(在Windows中使用環境變量$CLASSPATH%CLASSPATH%
  • 或只提供帶有-cp參數的java命令的jar文件的位置

例如:

java -cp path/to/jflex-1.6.0.jar jflex.Main xxx.jflex 

如果罐子在當前目錄中,則可以使用

java -cp jflex-1.6.0.jar jflex.Main xxx.jflex 

或者更簡單地說,因為它是一個可執行的jar,所以您可以省略主類

java -jar jflex-1.6.0.jar xxx.jflex 

同樣,似乎Java在處理yyy.cup文件時缺少CUP jar文件,您可以像使用JFlex那樣修復它

java -cp java-cup-11a.jar java_cup.Main yyy.cup

要么

java -jar java-cup-11a.jar java_cup.Main yyy.cup

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM