Could not find main class javacc
最近在搞JavaCC,也一直跟著Eclipse 3.6的測試版不斷更新Eclipse。遇到如下問題:
現象:
JavaCC Eclipse Plugin中的JavaCC Console中顯示:
>java -classpath D:/software/Develop/IDE/eclipse3.6RC1/plugins/sf.eclipse.javacc_1.5.22/javacc.jar javacc PlSql.jj Error: Could not find main class javacc java.lang.NoClassDefFoundError: javacc at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:198) Caused by: java.lang.ClassNotFoundException: javacc at java.net.URLClassLoader$1.run(URLClassLoader.java:299) at java.net.URLClassLoader$1.run(URLClassLoader.java:288) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:287) at java.lang.ClassLoader.loadClass(ClassLoader.java:422) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:325) at java.lang.ClassLoader.loadClass(ClassLoader.java:355) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:195) Exception in thread "main"
解決方案:
到workspace的項目根目錄下,打開.settings/sf.eclipse.javacc.prefs,修改RUNTIME_JJJAR和RUNTIME_JTBJAR兩個屬性的值,設置為正確的路徑即可。
說明:
JavaCC Eclipse Plugin把命令行的classpath路徑設置到了項目路徑中,更改eclipse目錄的話,路徑不會自動更新,還是會指向老的目錄,在.setting裏存在和本地環境有關的屬性是一個不好的設計。
最後更新:2017-04-02 06:51:19