Avatar billede jespersahner Nybegynder
10. februar 2006 - 16:47 Der er 11 kommentarer og
1 løsning

Tilgå Webbrowser fra Java

Er det muligt at tilgå en Webbrowser, f.eks. IE eller Firefox/Mozilla fra Java - og er der nogle med erfaring hermed?

Jeg er selv stødt på flg. link: http://j-integra.intrinsyc.com/support/com/doc/ocx/Internet_Explorer_OCX.html

Jeg er bekendt med Java-værktøjerne HttpClient og HttpUnit, som kan emulere en Webbrowser, men mere generelt kunne jeg forestille mig, at gængse Webbrowsere måske kunne tilgås direkte som et eksternt modul fra Java. Herved ville man direkte have glæde af standard-funktionalitet omkring f.eks. JavaScript m.m., som er bygget ind i browseren, og derfor ikke skal emuleres af java selv.
Avatar billede arne_v Ekspert
10. februar 2006 - 16:57 #1
Jeg mener at IE findes som COM moduler. Og der findes en Java COM bridge. Men
jeg tror at det bliver noget roderi.

Du kan ogsaa finde en JavaScript fortolker i Java.
Avatar billede phineas_phreak Nybegynder
11. februar 2006 - 12:03 #2
Følgende metode checker hvilket operativ system der kører på computeren og kører kommandoer til åbning af standard browser ved brug runtime objektet derefter:

    public static void showHelp(){
       
        String os = System.getProperty("os.name").toLowerCase();
        Runtime rt = Runtime.getRuntime();
        String command = "";
       
        try{
            if (os.indexOf("win") != -1){
                command = "cmd.exe /C start " + "http://www.eksperten.dk";
            }
            else if (os.indexOf("mac") != -1){
                command = "open "+ "http://www.eksperten.dk";
            }
            //hvis operativ systemet er Linux/Unix.
            else {
                command = "firefox "+ "http://www.eksperten.dk";
            }
            rt.exec(command);
        }   
        catch (Exception e){
            System.out.println("Failed to open browser!\n");
        }
    }
Avatar billede jespersahner Nybegynder
11. februar 2006 - 12:10 #3
->arne_v: Ok. Jeg mener, at HttpUnit inkluderer en JavaScript-fortolker kaldet Rhino. Grundlæggende har jeg svært ved at komme væk fra tanken om det lidt fikse i at tilgå en browser som et modul i stedet for at emulere samme funktionalitet direkte i Java.

Jeg forestiller mig (måske med urette), at man før eller siden løber ind i lidt avanceret JavaScript-kode, som ikke kan emuleres ordentligt.
Avatar billede jespersahner Nybegynder
11. februar 2006 - 12:12 #4
->phineas_phreak: Jeg efterspørger muligheden for at kommunikere direkte med browseren via et interface.
Avatar billede arne_v Ekspert
11. februar 2006 - 23:53 #5
saa skal du gennem noget Java-COM-MSIE, men jeg ved ikke om du kan styre et
saadant browser vindue programmatisk
Avatar billede jespersahner Nybegynder
12. februar 2006 - 17:41 #6
->arne_v: Jeg fandt efter nogen tids søgning flg. interessante link: http://jiffie.sourceforge.net/

På denne hjemmeside er der i øvrigt en række andre interessante links til bla.:
- Enterprise Web Test (http://sourceforge.net/projects/webunitproj/). Her står der:
"Enterprise Web Test allows Java programmers to write re-usable tests for web applications that, unlike HttpUnit, "drive" the actual web browser on the actual platform they intend to support."
- JExplorer (http://www.jniwrapper.com/pages/jexplorer/overview).
- JDIC (https://jdic.dev.java.net/). Der er en meget spændende demo (direkte på skærmen!) under: http://javadesktop.org/jdic/demo/Browser/browser.jnlp
Avatar billede bohbs Nybegynder
15. februar 2006 - 10:32 #7
Hvorfor vil du kommunikere med browseren?
Avatar billede jespersahner Nybegynder
16. februar 2006 - 15:56 #8
->bohbs: Hvis man f.eks. skal indsamle data, der præsenteres i en browser, har man brug for at tilgå browseren med et program.
Avatar billede jespersahner Nybegynder
16. februar 2006 - 15:57 #9
->arne_v: Smid gerne et svar for din inspiration. Jeg har fundet frem til nogle gode links, jf. ovenfor.
Avatar billede bohbs Nybegynder
16. februar 2006 - 16:56 #10
det er vel ikke browseren der skal indsamle data? Hvorfor ikke bare ændre indholdet, og så bede browseren om at vise den nye side?

Tror jeg ville refreshe siden med et script. Eventuelt med noget java beans og socket forbindelser.
Avatar billede arne_v Ekspert
16. februar 2006 - 16:59 #11
.
Avatar billede jespersahner Nybegynder
16. februar 2006 - 17:10 #12
->bohbs: Ja, det er rigtigt, hvis du er på server-siden. På klient-siden har man kun adgang til data via browseren. Anvendelsen kunne f.eks. være indsamling af aktie- og valutakurser osv. fra websider, der præsenterer sådanne oplysninger. I det tilfælde har man brug for at "parse" browserens HTML-/JavaScript-kode. Se evt. nogle af mine links ovenfor for en uddybning.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester