Mi proyecto incluye htmlunit jar y descarga algunas páginas de contenido. El archivo ejecutable (que incluye libs, función de exportación de eclipse) del mismo, sin embargo, solo funciona en la máquina en la que lo creé (en diferente no se ejecuta).¿Cómo configurar HtmlUnit en un proyecto de Eclipse?
EDITAR: No se ejecuta, ya que no muestra el mensaje "Iniciando el navegador sin cabeza" MessageBox al inicio. Solía Eclipse Indigo: libratries requeridos Archivo> Exportar> frasco Ejecutable> paquete en el tarro generada
Ayuda, dioses:
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: código adicional, conforme a lo solicitado
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();
}
}
¿Por qué cree que no se está ejecutando en otra máquina? Mi suposición es que otra máquina no tiene los jar requeridos en classpath. Publica el error –
Sin un stacktrace, código adicional, etc. estamos un poco a oscuras en cuanto a cómo responder a su pregunta. –
He actualizado mi pregunta. Por favor revisa. No veo ningún error ya que no ocurre nada cuando hago doble clic en el archivo en la máquina de destino. ¿Estás sugiriendo que eclipse no ha manejado el classpath? No sé qué es stacktrace, mis aplicaciones. – John