I have never heard of it. I am researching on how to implement the internet to my program and I come across it. it seems to be easier then what I was trying to do for the past while. Could someone please link me to a website that can provide a simple to understand, but in depth enough that I could understand the concept. Also some random bits of code to help me understand would be appreciated (if you wouldn't mind).


Do you have any other ways, that are relatively easy, to implement internet into my program? in web browser like format.

Then is there a way to implement a website like page like notch did in his new minecraft launcher?

Here is a Browser and some links to examples. Maybe you can send it a address when you need it good luck.

package view.utils;
/* Examples:
 *     Browser.displayURL("http://www.javaworld.com")
 *     Browser.displayURL("file://c:\\docs\\index.html")
 *     BrowserContorl.displayURL("file:///user/joe/index.html");
 * Note - you must include the url type -- either "http://" or "file://".

import java.io.*;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;

//import com.apple.mrj.MRJFileUtils;     // For Mac
//temp path to file loading guitarmaster
 * C:\Users\depot\Documents\ceyesumma\java_cache\my_projects\guitar_master_project\target_guitar_master\guitar_master\guitar_master\src
public class Browser {
    // ---------- Define constants:

    public static final String FileProtocol = "file://";
    // 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";
    //  For NT ???    "cmd /c Notepad.exe D:\\temp\\test.txt"
    // Id mac
    private static final String Mac_ID = "Mac OS";
    // 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";
    final static boolean debug = true; //true;        // For testing

     * 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 = isPlatform(WIN_ID);
        boolean mac = isPlatform(Mac_ID);
        String cmd = null;
        try {
            if (windows) {
                // cmd = 'rundll32 url.dll,FileProtocolHandler http://...'
                cmd = WIN_PATH + " " + WIN_FLAG + " " + url;
                if (debug) {
                    System.out.println("cmd=" + cmd);
                Process p = Runtime.getRuntime().exec(cmd);

            } else if (mac) {
                System.out.println("On Mac, trying to open " + url);
//            MRJFileUtils.openURL(url);
                // Following copied from BrowserLaunch.java by:
// * @author Eric Albert (<a href="mailto:ejalbert@cs.stanford.edu">ejalbert@cs.stanford.edu</a>)
// * @version 1.4b1 (Released June 20, 2001)

                try {
                    Class mrjFileUtilsClass = Class.forName("com.apple.mrj.MRJFileUtils");
                    Method openURL = mrjFileUtilsClass.getDeclaredMethod("openURL",
                            new Class[]{String.class});
                    openURL.invoke(null, new Object[]{url});
                } catch (InvocationTargetException ite) {
                    throw new IOException("InvocationTargetException while calling openURL: "
                            + ite.getMessage());
                } catch (IllegalAccessException iae) {
                    throw new IOException("IllegalAccessException while calling openURL: "
                            + iae.getMessage());
                } catch (ClassNotFoundException cnfx) {
                    System.err.println("Class.forName error " + cnfx);
                } catch (NoSuchMethodException nsmx) {
                    System.err.println("Method.getDeclaredMethod error " + nsmx);

            } 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);
            } // end non Windows code
            //cmd= rundll32 url.dll,FileProtocolHandler file://D:/www/index.html
//         System.out.println("cmd= " + cmd);
        } catch (IOException x) {
            // couldn't exec browser
            System.err.println("Could not invoke browser, command=" + cmd);
            System.err.println("Caught: " + x);
    } // end displayURL

     * 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 isPlatform(String id) {
        String os = System.getProperty("os.name");
        if (os != null && os.startsWith(id)) {
            return true;
        } else {
            return false;
    } // end
    /** ---------------------------------------
     * Simple example.   Comment out when done testing

    public static void main(String[] args) {
    //      displayURL("http://www.javaworld.com");
    //  displayURL("file://D:/www/index.html");
    //   displayURL("");
    } // end main() */
} // end class
Running: java NormsTools.Browser  -D

cmd=rundll32 url.dll,FileProtocolHandler
>>> This starts IE with error msg: Problem with shortcut.  Unable to open  ???

0 error(s)

due all my respect to your person, that isn't about your knowledge, about your excelent level that came form your answer .. or not about that you hold this forum in your hands, about that just my hat down to your great person


don't spoke about dead stinky fish that isn't dead or stinky, just paused or not definitelly dead

then lots of Greats and Richiest another projects from Java.net.... and long time not definitelly dead too, just we can tell long time INACTIVE, PAUSED, that really not dead, SwingX 2y Inactive (inspirated into Java7), Substance 1y closed by Kirill decision (transmitted to someone http://www.springone2gx.com/blog/danno_ferrin/2011/04/insubstantial_6_2_release),.... etc (I tried these two long time), yes Nimbus survived to thess days

back to the Desktop API

I can't anything as == yes you have right it isn't definitelly dead, well like as another Desktop API's child JMF, some API without any start and end to, just inactive since year 2006 nothing else just PAUSED and INACTIVE

Hi mKorbel. Thanks for the kind words! But please don't think I hold anything "in my hands". I'm just a contributor with a bit more spare time than many others.

Anyway, Desktop... I think we may be talking about different things - there's an old Desktop project that, as you say, is inactive. The Desktop API in Java 6 is definitely mainstream fully-supported code, just like the rest of the API.
I agree about JMF's sorry state, but I don't think that's connected in any way to the Java 6 Desktop API.

what's talk anything, heeeels with sweetest tomorrow

Sorry mKorbel I guess JamesCerrill upset you too.
I'm here to share code ;)

I did look at a new browser code and I dumped it in the code I gave

I simply sent in the url and it works beautiful: just use this method

or make it a class.

public static void onLaunchBrowser(String url) throws URISyntaxException {  
       if (Desktop.isDesktopSupported()) {
            desktop = Desktop.getDesktop();
            // now enable buttons for actions that are supported.
        URI uri = null;
        try {
            uri = new URI(url);
        catch(IOException ioe) {
        catch(URISyntaxException use) {

good luck.

Sorry ceyesuma, I certainly didn't intend to upset you! I realised that it wasn't your own code I was criticising, but I assumed you were also unaware that it was very old and used an approach that had been replaced by something much better.
Once again, if I caused offence, I apologise.

ps: Your latest code is great.

@ ceyesuma

:-) +1, this about real usage of, not about possibilities

<:-)> and then tell us how you can use myStle.css correctly (more than 500lines CustomWoodoo about definitions for create Stylled Document from SomeJavaGuru) and with todays Html syntax (Html ver.> 3.2), yes there are exist 3.rd part API </:-)>

@ ceyesuma

:-) +1, this about real usage of, not about possibilities

<:-)> and then tell us how you can use myStle.css correctly (more than 500lines CustomWoodoo about definitions for create Stylled Document from SomeJavaGuru) and with todays Html syntax (Html ver.> 3.2), yes there are exist 3.rd part API </:-)>

We live and learn. Thanks for the heads up for some better code.