gratifiant > comp.lang.* > comp.lang.java

Yvon Thoraval (15/04/2004, 19h30)
Bonjour toutes et tous !!!

j'ai légérement modifié une petite classe (from )
chargée d'ouvrir le navigateur ou courrielleur par défaut, c'est testé
sur MacOS X avec une url de la forme :

.. ou mailto:...

qq'un pourrait'il tester sur win et/ou sur linux ???

la classe et son blahblah :

------------------------------------------------------------------------
import java.lang.System;
import java.lang.String;
import java.io.*;
/**
* <i>This class comes from javaworld at
http://www.javaworld.com/javatips/jw-javatip66_p.html.</i>
*
* A simple, static class to display a URL in the system browser.
*
* Under Unix, the system browser is hard-coded to be 'netscape'.
* Netscape must be in your PATH for this to work. This has been
* tested with the following platforms: AIX, HP-UX and Solaris.
*
* Under Windows, this will bring up the default browser under windows,
* usually either Netscape or Microsoft IE. The default browser is
* determined by the OS. This has been tested under Windows 95/98/NT.
*
* Examples:
* BrowserControl.displayURL("http://www.javaworld.com")
* BrowserControl.displayURL("file://c:\\docs\\index.html")
* BrowserContorl.displayURL("file:///user/joe/index.html");
*
* Note - you must include the url type -- either "http://" or
"file://".
* @author javaworld (tip 66)
* @version 1.0
*
* Added by yt april 2004
* Under MacOS X tested using .. and mailto:...
*
*/

public class launchURL
{
// 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";

// Used to identify the MacOS X platform.
private static final String MOSX_ID = "Mac OS X";

// The default browser under MacOS X.
private static final String MOSX_PATH = "/Applications/Safari.app";

/**
* 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) throws InterruptedException,
IOException
{
boolean windows = isWindowsPlatform();
boolean macosx = isMacOSXPlatform();
String cmd = null;

if (windows)
{
// cmd = 'rundll32 url.dll,FileProtocolHandler ..'
cmd = WIN_PATH + " " + WIN_FLAG + " " + url;
Process p = Runtime.getRuntime().exec(cmd);
}
else if (macosx)
{
/*
conseil de Mathias Terreaux
sur fr.comp.sys.mac.programmation
tu peux essayer :
Runtime.getRuntime().exec("open 'http://...');
*/
Process p = Runtime.getRuntime().exec("open " + url);
}
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()'
cmd = UNIX_PATH + " " + UNIX_FLAG + "(" + url + ")";
Process p = Runtime.getRuntime().exec(cmd);

// 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 '
cmd = UNIX_PATH + " " + url;
p = Runtime.getRuntime().exec(cmd);
}
}
}

/**
* 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;

}
public static boolean isMacOSXPlatform()
{
String os = System.getProperty("os.name");
//System.out.println((String) os.toString());
if ( os != null && os.startsWith(MOSX_ID))
return true;
else
return false;

}
public static void main (java.lang.String [] args)
{
try {
BrowserControl.displayURL(args[0]);
} catch (InterruptedException e) {}
catch (IOException e) {}
System.exit(0);
}

}
------------------------------------------------------------------------
Frédéric Augé (15/04/2004, 21h18)
Yvon Thoraval wrote:
> Bonjour toutes et tous !!!
> j'ai légérement modifié une petite classe (from )
> chargée d'ouvrir le navigateur ou courrielleur par défaut, c'est testé
> sur MacOS X avec une url de la forme :
> .. ou mailto:...
> qq'un pourrait'il tester sur win et/ou sur linux ???


les 2 marchent sous Windows.
Yvon Thoraval (15/04/2004, 22h01)
Frédéric Augé <f.auge> wrote:

> les 2 marchent sous Windows.


Ouais, merci beaucoup !!!
Discussions similaires