Toon posts:

[Java] URL openen in applicatie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een grafische applicatie (in Java JDK 1.3) en ik wil graag dat er na een bepaalde keuze in het menu een URL wordt geopend in de standaardbrowser van die computer. Ik kan alleen niet echt vinden hoe dat moet bij applicaties. Bij applets werkt het zoiets als:
code:
1
AppletContext.showDocument(URL url);

Daar heb je alleen bij een grafische applicatie niet zoveel aan. Iemand een idee :?

Alvast bedankt :)

edit: Het gaat trouwens om het openen van een *.html-file die gewoon op de HD staat.

Verwijderd

http://browserlauncher.sourceforge.net/

heb je vast wel wat aan! :D

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Als je de applicatie deployed in Java Web Start vorm, wat voor de gebruikers een erg makkelijke methode om een applicatie te installeren en voor jou een goede methode om het te onderhouden, kan je wel een browser openen met 1 van de services van Java Web Start.

Als je dat niet wilt, moet je inderdaad gaan werken met oplossingen als hierboven die meestal simpelweg per platform waarop de applicatie draait een oplossing implementeren.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

import java.io.IOException;

public class BrowserControl {
/**
* Display a file in the system browser. If you want to display a
* file, you must include the absolute path name.
*
* @param url the file's url (the url must start with either "http://"
or
* "file://").
*/
public static void displayURL(String url) {
boolean windows = isWindowsPlatform();
String cmd = null;
try {
if (windows) {
// cmd = 'rundll32 url.dll,FileProtocolHandler http://...'
cmd = WIN_PATH + " " + WIN_FLAG + " " + url;
Process p = Runtime.getRuntime().exec(cmd);
} else {
// Under Unix, Netscape has to be running for the "-remote"
// command to work. So, we try sending the command and
// check for an exit value. If the exit command is 0,
// it worked, otherwise we need to start the browser.
// cmd = 'netscape -remote openURL(http://www.javaworld.com)'
cmd = UNIX_PATH + " " + UNIX_FLAG + "(" + url + ")";
Process p = Runtime.getRuntime().exec(cmd);
try {
// wait for exit code -- if it's 0, command worked,
// otherwise we need to start the browser up.
int exitCode = p.waitFor();
if (exitCode != 0) {
// Command failed, start up the browser
// cmd = 'netscape http://www.javaworld.com'
cmd = UNIX_PATH + " " + url;
p = Runtime.getRuntime().exec(cmd);
}
} catch (InterruptedException x) {
System.err.println("Error bringing up browser, cmd='" +
cmd + "'");
System.err.println("Caught: " + x);
}
}
} catch (IOException x) {
// couldn't exec browser
System.err.println("Could not invoke browser, command=" + cmd);
System.err.println("Caught: " + x);
}
}

/**
* Try to determine whether this application is running under Windows
* or some other platform by examing the "os.name" property.
*
* @return true if this application is running under a Windows OS
*/
public static boolean isWindowsPlatform() {
String os = System.getProperty("os.name");
if (os != null && os.startsWith(WIN_ID))
return true;
else
return false;

}

/**
* Simple example.
*/
public static void main(String[] args) {
displayURL("http://www.javaworld.com");
}

// Used to identify the windows platform.
private static final String WIN_ID = "Windows";
// The default system browser under windows.
private static final String WIN_PATH = "rundll32";
// The flag to display a url.
private static final String WIN_FLAG = "url.dll,FileProtocolHandler";
// The default browser under unix.
private static final String UNIX_PATH = "netscape";
// The flag to display a url.
private static final String UNIX_FLAG = "-remote openURL";
}

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Moet je wel even codetags gebruiken ;)

orgineel staat op javaworld:
http://www.javaworld.com/javaworld/javatips/jw-javatip66.html

  • MisterData
  • Registratie: September 2001
  • Laatst online: 20:23
Volgens mij is hier al ooit een topic over geweest :)
Pagina: 1