如何在Eclipse项目中设置HtmlUnit?

我的项目包括htmlunit jar并下载一些页面内容。 然而,可执行jar(包括libs,eclipse导出function)仅适用于我创建它的机器(在不同的情况下它不执行)。

编辑:它没有执行,因为它在启动时不显示“Starting Headless Browser”MessageBox。 我使用了Eclipse Indigo:File> Export> Runnable jar> package所需的libratries到生成的jar中

帮助,众神:

import java.io.*; import com.gargoylesoftware.htmlunit.BrowserVersion; import com.gargoylesoftware.htmlunit.Page; import com.gargoylesoftware.htmlunit.RefreshHandler; import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.HtmlPage; import com.gargoylesoftware.htmlunit.html.HtmlTextInput; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.*; import javax.swing.filechooser.FileSystemView; 

编辑:根据要求提供进一步的代码

 public class MyTest { public static void main(String[] arguments) { try{ JOptionPane.showMessageDialog(null, "Starting Headless Browser"); JFileChooser fr = new JFileChooser(); FileSystemView fw = fr.getFileSystemView(); String MyDocuments = fw.getDefaultDirectory().toString(); FileInputStream fstream = new FileInputStream(MyDocuments+"\\Links.txt"); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; String strLineID; FileWriter xfstream = new FileWriter(MyDocuments+"\\NewPageContentList.txt"); BufferedWriter out = new BufferedWriter(xfstream); while ((strLineID = br.readLine()) != null) { strLine = br.readLine(); out.write(strLineID); out.write("\r\n"); out.write(DownloadPage(strLine)); out.write("\r\n"); } out.close(); in.close(); JOptionPane.showMessageDialog(null, "HeadLess Browser Process Has Finished"); } catch (Exception e){ JOptionPane.showMessageDialog(null, "error"); } } public static String DownloadPage(String str){ final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3_6); webClient.setThrowExceptionOnScriptError(false); try{ final HtmlPage page = webClient.getPage(str); final String pageAsText = str_replace("\n","",str_replace("\r","",page.asText())); return pageAsText; } catch(IOException e){ JOptionPane.showMessageDialog(null, "error"); } webClient.closeAllWindows(); return ""; } public static String str_replace (String search, String replace, String subject) { StringBuffer result = new StringBuffer (subject); int pos = 0; while (true) { pos = result.indexOf (search, pos); if (pos != -1) result.replace (pos, pos + search.length (), replace); else break; } return result.toString (); } } 

这是如何设置HtmlUnit以及如何将其导出到eclipse中的可运行jar文件:

  1. 创建一个新的java项目(所有默认设置)
  2. 右键单击项目(在包资源管理器视图中)并转到New-> Folder并将其命名为“lib”
  3. 下载 HtmlUnit库(文件htmlunit-2.9-bin.zip)
  4. 解压缩并将未压缩文件的文件夹“/htmlunit-2.9/lib/”的内容复制到我们的文件夹“lib”中(您可以从windows / linux桌面拖放eclipse的包浏览器中的所有文件并选择复制文件)
  5. 再次右键单击该项目,然后转到Build Path-> Configure Build Path …
  6. 在选项卡库中,单击Add JARs …
  7. 查找我们的新库文件夹(如果您没有看到它关闭窗口并再次转到包浏览器,请选择项目文件夹并按F5并继续执行步骤5)
  8. 选择该文件夹中的所有文件(HtmlUnit 2.9中的17个文件)并关闭所有窗口
  9. 通过创建一个非常简单的应用程序检查一切是否正常(我碰巧在这个问题中写了一个简单的代码,可能对你有所帮助)
  10. 一切都应该没问题(如果不是,请重新检查步骤),所以让我们通过右键单击项目并选择Export …来导出应用程序。
  11. 查找Java / Runnable JAR文件,然后单击“下一步”
  12. 选择适当的启动配置,目标并选择“将所需的库打包到生成的JAR”,如果您只想要一个包含您的应用程序和HtmlUnit的大文件并单击完成
  13. 打开JAR文件所在的控制台并执行“java -jar yourJARfile.jar”并享受您的应用程序

如果这适用于新项目,则更新您自己的项目以反映列表中采取的步骤。 希望这可以帮助

新的java项目,默认设置下载库最新版本的HTMUnit来自下载最新的HTMLUnit jar选择新的项目属性 – > Java Build Path – >转到库选项卡并添加解压缩的所有jar文件。 在新项目中使用main方法创建一个新类,并运行一个简单的应用程序,并在类中添加此方法并在main方法中调用它。

 `@Test public void getElements() throws Exception { final WebClient webClient = new WebClient(); final HtmlPage page = webClient.getPage("http://some_url"); final HtmlDivision div = page.getHtmlElementById("some_div_id"); final HtmlAnchor anchor = page.getAnchorByName("anchor_name"); webClient.closeAllWindows(); }` 

我尝试了上面的答案,但它们对我不起作用。

他们是需要的,但我有一个动态的Web项目,所以我还需要将所有.jar文件添加到WEB-INF目录中的lib目录。

例如ProjectName \ WebContent \ WEB-INF \ lib(您正在使用的所有.jar文件)