天天看点

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里存在和本地环境有关的属性是一个不好的设计。

继续阅读