我正在使用Java,并且正在尝试解析xml文档。该代码在eclipse中有效,但是当我尝试在终端上运行它时,出现此错误。 java.lang.ClassNotFoundException:org.jdom2.Document我正在使用org.jdom2.Document作为数据类型,这可能是问题所在。我不知道可以用什么代替它。
public class ReadXMLFile
{
public static org.jdom2.Document Read()
{
String fileName = "test_file.xml";
org.jdom2.Document jdomDoc = new org.jdom2.Document();
try
{
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new File(fileName));
DOMBuilder domBuilder = new DOMBuilder();
jdomDoc = domBuilder.build(doc);
}
catch (Exception e)
{
}
return jdomDoc;
}
}
我的代码示例。
答案 0 :(得分:0)
ClassNotFoundException是运行时异常,当应用程序尝试使用Class.forName()或loadClass()或findSystemClass()方法在运行时加载类,并且在类路径中找不到具有指定名称的类时,抛出此异常
您是否包括在类路径中?您正在使用哪个命令来构建您的jar文件?
您可以构建包括以下依赖项的Java应用程序:
<build>
<plugins>
<!-- any other plugins -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
有关如何包含依赖项的其他建议,您可以找到here。
最好的问候,
答案 1 :(得分:0)
您的代码失败,因为执行代码时JDOM2不在类路径上。
有人建议使用Maven作为解决此问题的方法。您实际上不需要Maven。 Maven很有用,因为它使管理依赖关系变得更加容易,但这是需要学习的另一层技术。您真正需要做的就是确保JDOM2库位于类路径上。
使用javac进行编译时,您将JDOM2放在类路径上,再次使用
时,还需要将其放在类路径上java -cp XXX/jdom-2.0.6.jar myclass