2015-12-04 111 views
0

你好,有StackOverflow。我从来没有真正发布在这里,但已经使用它作为参考,并学习有关编程无数次的各种主题,所以我感谢你所有的:)努力介绍JSoup

我想先这样,这是一个该项目是实习岗位正在进行的面试的一部分。如果我多次遇到困难,该公司非常友好,并愿意提供帮助,但如果可能的话,我希望尽可能自行完成,以表明我可以通过我自己的发现解决我的问题。

这就是说,我得到了一个pom.xml文件,一个骨架主(其中插入了一个非常基本的尝试从URL获取标题)。

我从来没有使用(甚至听说过)pom文件,直到这个项目,所以他们仍然非常,非常新对我来说。

我目前正在试图按照this reference但是当我尝试运行该程序,我得到击中这个:

Exception in thread "main" java.lang.NoClassDefFoundError: org/jsoup/Jsoup 
    at com.appdetex.sampleparserjavaproject.Main.main(Main.java:26) 
Caused by: java.lang.ClassNotFoundException: org.jsoup.Jsoup 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 1 more 

这里是给定的pom.xml文件,对此我没有完全改变为这一点:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.appdetex</groupId> 
    <artifactId>sampleparserjavaproject</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 

    <name>sampleparserjavaproject</name> 
    <url>**Not actually *'s, just wish to hide the github URL**</url> 

    <dependencies> 
     <dependency> 
      <!-- jsoup HTML parser library @ http://jsoup.org/ --> 
      <groupId>org.jsoup</groupId> 
      <artifactId>jsoup</artifactId> 
      <version>1.8.3</version> 
     </dependency> 
    </dependencies> 
</project> 

这是我当前的源代码。 [注意:Java:26从我的错误是包含文档的文档=行.....]

package com.appdetex.sampleparserjavaproject; 

import java.io.IOException; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
/** 
* Main Java Class 
*/ 
public class Main 
{ 
    public static void main(String args[]) 
    { 
     Document doc = Jsoup.connect("http://www.javatpoint.com").get(); 
     String title = doc.title(); 
     System.out.println("URL title = " + title);  
    } // End of main method 
} // End of class Main 

我通过以下命令运行项目:

$ java -cp target/sampleparserjavaproject-1.0-SNAPSHOT.jar com.appdetex.sampleparserjavaproject.Main 

如果我在我的main()中注释掉了3行,并打印出一个“Hello World”,例如它可以正常工作,但JSoup似乎不想合作。

对于JSoup和pom文件基本上没有经验,我不太确定接下来要做什么,但是从我所看到的,看起来我必须以某种方式更改/编辑我的pom文件。

任何帮助将不胜感激。

感谢 - 杰克

+0

我使用jsoup-1.7.2.jar测试你的代码,它的工作方式。一次检查你的classpath是否有jsoup jar文件。如果不将jar文件添加到classpath(lib文件夹)。 –

+0

我该怎么做呢?你的意思是java的classpath吗? – Jack

+0

检查你的lib文件夹。 –

回答

0

你似乎对基本的项目设置了Maven项目费周折。 Maven使用pom文件来定义项目组件如何一起工作。大多数情况下,它们都包含有关编译时间和运行时间依赖性的信息。

要在Eclipse中正确使用它,您应该使用m2eclipse插件,该插件可能已经是您的安装的一部分。

有许多关于Maven的教程及其工作原理。我发现这是非常好的:http://www.mkyong.com/maven/how-to-create-a-java-project-with-maven/

+0

非常感谢您的帮助!无论什么原因,当我从命令行运行它不起作用,但是当我在Eclipse中运行时,它的工作原理应该如此。再次感谢你,祝你有美好的周末! – Jack