Java 使用Eclipse抽象语法树时出错
我试图在非插件环境中使用AST解析器。代码已编译,但出现以下运行时错误: 线程“main”java.lang.NoClassDefFoundError中出现异常:org/eclipse/core/resources/IResource 位于org.eclipse.jdt.core.dom.ASTParser(ASTParser.java:189) 位于org.eclipse.jdt.core.dom.ASTParser.newParser(ASTParser.java:118) 以下是我正在运行的代码:Java 使用Eclipse抽象语法树时出错,java,eclipse-jdt,Java,Eclipse Jdt,我试图在非插件环境中使用AST解析器。代码已编译,但出现以下运行时错误: 线程“main”java.lang.NoClassDefFoundError中出现异常:org/eclipse/core/resources/IResource 位于org.eclipse.jdt.core.dom.ASTParser(ASTParser.java:189) 位于org.eclipse.jdt.core.dom.ASTParser.newParser(ASTParser.java:118) 以下是我正在运行
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.core.dom.*;
public class TestAST
{
private void runTest()
{
String helloStr ="\n"+
"public class HelloWorld {\n"+
"\n"+
" private String name=\"\"\n\n"+
" /**\n"+
" * \n"+
" */\n"+
" public void sayHello() {\n"+
" System.out.println(\"Hello \"+name+\"!\");\n"+
" }\n"+
"\n"+
"}";
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setKind(ASTParser.K_COMPILATION_UNIT);
parser.setSource(helloStr.toCharArray());
parser.setResolveBindings(true);
ASTNode tree = parser.createAST(null);
tree.toString();
}
public static void main(String args[])
{
TestAST ast = new TestAST();
ast.runTest();
}
}
有人知道为什么会这样吗
提前感谢,
Shirley启动应用程序时,
IResource
类不在类路径上
如果您没有使用Eclipse(或其他工具)来管理依赖关系,那么您必须跟踪抽象语法树类需要的每个jar文件,并手动将它们包含在类路径中。我不确定这可能有多少个插件,但Eclipse是由许多插件组成的,手动计算构建依赖项将是一件烦琐的事情
编辑:要将iResort添加到类路径,您要查找的特定jar文件将被称为类似
org.eclipse.core.resources\u 3.5.0.v20090512.jar的文件,具体取决于您的eclipse版本。但我不认为它是您唯一需要的…我最近遇到了类似的问题,我慢慢地一次修复一个依赖项,下面是我提出的所需依赖项列表。我希望这能为尝试完成同样任务的人节省一些时间:
列表(与下图匹配):
- ContentType(org.eclipse.core.ContentType)
- 作业(org.eclipse.core.Jobs)
- 资源(org.eclipse.core.Resources)
- 运行时(org.eclipse.core.Runtime)
- Equinox Common(org.eclipse.Equinox.Common)
- Equinox首选项(org.eclipse.Equinox.Preferences)
- JDT(org.eclipse.JDT)
- jdtcore(org.eclipse.JDT.Core)
- OSGI(org.eclipse.OSGI)
- OSGI服务(org.eclipse.OSGI.Services)
- osgiutil(org.eclipse.OSGI.Util)
所有这些JAR都可能已经包含在Eclipse插件目录中,您可以通过将它们作为外部JAR添加来找到它们并将它们添加到构建路径中
我也有同样的问题。我解决了将JAR添加到plugin.xml所需的依赖项中的问题。您可以在plugin.xml文件的依赖项选项卡中找到它。是的,我通过将jdt包附带的几乎所有org.eclipse.*.jar文件添加到我的类路径中,解决了这个问题。我没有时间跟踪依赖项,因此这是最快的修复方法。谢谢你的帮助!也许你可以接受答案,结束这个问题?谢谢