Wie, um das setup HtmlUnit in ein Eclipse-Projekt?
Mein Projekt umfasst htmlunit Gläser und downloads einige Seiten Inhalt. Ausführbare jar-Datei (die libs, funkt. der eclipse export) davon, jedoch funktioniert nur auf dem Rechner, auf dem ich Sie erstellt habe (auf anderen es nicht ausgeführt wird).
EDIT: Es wird nicht ausgeführt, da es nicht "Ab" Headless Browser" MessageBox beim Start. Ich benutzte Eclipse Indigo: Datei > Export > Runnable jar > Paket erforderlich libratries in die erzeugte jar -
Helfen, Götter:
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;
EDIT: weitere code, wie verlangt
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 ();
}
}
- Warum fühlst du es nicht ausführen auf der anderen Maschine? Meine Vermutung ist, dass die anderen Computer nicht über die erforderlichen jar-Dateien in classpath. Posten Sie den Fehler.
- Ohne stacktrace, weiteren code, etc sind wir ein bisschen im Dunkeln, wie um Ihre Frage zu beantworten.
- Ich aktualisiert meine Frage. Bitte überarbeiten. Ich sehe keinen Fehler, da passiert nichts, wenn ich "doubleclick", die Datei auf den Zielrechner. Meinst du eclipse noch nicht vorgeführt classpath? Ich weiß nicht was ein stacktrace ist, ich entschuldige mich.
Exception in thread "main" java.lang.IllegalArgumentException: Cannot locate declared field class org.apache.http.impl.client.HttpClientBuilder.dnsResolver
Ich habe den oben genannten Ausnahme, Kann mir jemand die Lösung für dieses?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, wie Sie eingerichtet HtmlUnit und wie um es zu exportieren, um eine ausführbare jar-Datei in eclipse:
Wenn dieser arbeitete für ein neues Projekt, und aktualisieren Sie dann Ihr eigenes Projekt zu reflektieren, die Schritte in der Liste aus. Hoffe, das hilft
Neues java-Projekt mit Standardeinstellungen
download Bibliothek der neuesten version von HTMUnit von Download der Aktuellen HTMLUnit-Glas
Wählen Sie "neues Projekt Eigenschaften-> Java Build Path -> gehen Sie zur Registerkarte "Bibliothek" und fügen Sie die extrahierten alle jars-Dateien.
Erstellen Sie eine neue Klasse mit main-Methode, in Ihrem neuen Projekt, und führen Sie eine einfache Applikation und fügen Sie diese Methode in der Klasse, und rufen Sie in der main-Methode.
Ich habe versucht, die oben genannten Antworten, und Sie funktionierte nicht für mich.
Sind Sie gebraucht, aber ich hatte ein dynamisches web-Projekt, da brauchte ich auch, um alle meine .jar-Dateien im lib-Verzeichnis in das WEB-INF-Verzeichnis.
z.B. Projektname\WebContent\WEB-INF\lib(alle die .jar-Dateien, die Sie verwenden)