Java on Macintosh!!

Hi all,
I might be getting a Mac, i think Mac OS X. And i think someone said Java is already installed in it. Can Java work on mac?
I am learning Java on Windows and i have everything. In mac is it exactly the same? Like the code?
And what will i have to install and how will i get it to work.
Thanks in advance.

I might be getting a Mac, i think Mac OS X. If it's new, then it will be OS X. Don't get the classic OS if you want to run Java; The java implementation on OS 9 is at version 1.1.7.
And i think someone said Java is already installed in it.The latest Apple versions of the 1.4 runtime should be. It is likely that Java 1.5 will be released with OS X 10.4, but Apple don't give out future release schedules in public. (You get it when it's ready)
I am learning Java on Windows and i have everything.No you don't.
In mac is it exactly the same? Like the code?The Apple implementation of swing feels closer to native Aqua applications than the Sun implementation on Windows. The default for java applications is to use Aqua look and feel rather than Metal.
There are a couple of times I've been caught out with UI code written on OS X not working on Windows; usually traced to race conditions and the Apple implementation having differences in its thread model, (also the Apple OpenGL implementation being more lenient in which order you call functions, but that is only if you're doing OpenGL work).
There are also additional classes that bind to apple's user interface components, which give access to the Cocoa native widgets that the awt or swing libraries don't. The Java bindings lag behind the native objective-c Cocoa, and objective-c is not a difficult language to learn if you're used to C and Java, so I would probably use objective-c and JNI rather than the cocoa-java if I wanted native widgets and Java in the same application.
And what will i have to install and how will i get it to work.To run Java, nothing, it's all installed already.
To build Java applications, download or install the developer tools. This will install the Java SDK, and XCode, Apple's IDE. Both are free.
Pete

Similar Messages

  • Oracle XML Schema (Java) on Macintosh

    Hi Everybody,
    I tried your XML Schema parser on my Mac and I had no single platform specific Java or configuration problem. Congratulation. (I used the Windows download since I never had problems to unzip files)
    One minor problem is left: the file names in the doc folder are cut to 31 characters and this means that some links between some html files are broken.
    Have a look how how Sun uses JavaDoc: they would create a com folder that contains an oracle folder ... that contains the unqualified classname.html files.
    It would be nice if you could use JavaDoc the way Sun does it.
    Cheers,
    Gerd

    This is because of a known problem for JIT under AIX. Please turn of the JIT and run the program by:
    1/ set enviroment variable
    JAVA_COMPILER NONE
    2/ run java with -D option, like:
    java -Djava.compiler=NONE <your program>

  • Java for Macintosh

    I can't seem to figure out how to obtain a download version for Mac G4 computers. All I see is
    Windows, Linux, Solaris. Am I missing something? I was told by a professor that I could run Java
    on my Mac G4.
    Thanks, JR

    Although, thinking about it, that is only partially relevant. In either case, you'll need to get the VM from Apple. If you have OS X, it should come with Java 1.3.1 already installed, and if you have 10.2 you should be able to get 1.4.1 through the Software Updater.

  • Disk permissions do not repair: Verify permissions for "Macintosh HD" Permissions differ on "System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/dt.jar", should be lrwxr-xr-x , they are lrw-r--r-- . Permissions differ on "System/Library/Jav

    Disk Utility does not repair Permissions (shows repaired but just come back up again). See problems:
    Verify permissions for “Macintosh HD”
    Permissions differ on "System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/dt.jar", should be lrwxr-xr-x , they are lrw-r--r-- .
    Permissions differ on "System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/jce.jar", should be lrwxr-xr-x , they are lrw-r--r-- .
    Permissions differ on "System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/jconsole.ja r", should be lrwxr-xr-x , they are lrw-r--r-- .
    Permissions differ on "System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/management- agent.jar", should be lrwxr-xr-x , they are lrw-r--r-- .
    User differs on "System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib", should be 0, user is 95.
    Permissions differ on "System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/dt.jar", should be -rw-r--r-- , they are -rwxr-xr-x .
    Permissions differ on "System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/jce.jar", should be -rw-r--r-- , they are -rwxr-xr-x .
    Permissions differ on "System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/management -agent.jar", should be -rw-r--r-- , they are -rwxr-xr-x .
    Permissions differ on "System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/b lacklist", should be lrwxr-xr-x , they are lrw-r--r-- .
    User differs on "System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries", should be 0, user is 95.
    Permissions differ on "System/Library/Java/Support/Deploy.bundle/Contents/Home/lib/security/cacerts", should be lrwxr-xr-x , they are lrw-r--r-- .
    Permissions differ on "System/Library/Java/Support/Deploy.bundle/Contents/Resources/Java/deploy.jar", should be lrwxr-xr-x , they are lrw-r--r-- .
    Permissions differ on "System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPluginCocoa.b undle/Contents/Resources/Java/deploy.jar", should be lrwxr-xr-x , they are lrw-r--r-- .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Rem ote Desktop Message.app/Contents/Resources/zh_TW.lproj/UIAgent.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreen.app/Contents/Resources/zh_TW.lproj/MainMenu.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Rem ote Desktop Message.app/Contents/Resources/zh_CN.lproj/UIAgent.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreen.app/Contents/Resources/zh_CN.lproj/MainMenu.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Rem ote Desktop Message.app/Contents/Resources/ko.lproj/UIAgent.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreen.app/Contents/Resources/ko.lproj/MainMenu.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Rem ote Desktop Message.app/Contents/Resources/Dutch.lproj/UIAgent.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreen.app/Contents/Resources/Dutch.lproj/MainMenu.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreen.app/Contents/Resources/Italian.lproj/MainMenu.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Rem ote Desktop Message.app/Contents/Resources/Spanish.lproj/UIAgent.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreen.app/Contents/Resources/Spanish.lproj/MainMenu.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Rem ote Desktop Message.app/Contents/Resources/French.lproj/UIAgent.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreen.app/Contents/Resources/French.lproj/MainMenu.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Rem ote Desktop Message.app/Contents/Resources/German.lproj/UIAgent.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreen.app/Contents/Resources/German.lproj/MainMenu.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Rem ote Desktop Message.app/Contents/Resources/Japanese.lproj/UIAgent.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreen.app/Contents/Resources/Japanese.lproj/MainMenu.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/dt.jar", should be -rw-r--r-- , they are lrw-r--r-- .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jce.jar", should be -rw-r--r-- , they are lrw-r--r-- .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jconsole.jar ", should be -rw-r--r-- , they are lrw-r--r-- .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/management-a gent.jar", should be -rw-r--r-- , they are lrw-r--r-- .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/dt.jar", should be lrwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/jce.jar", should be lrwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/management- agent.jar", should be lrwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/security/bl acklist", should be -rw-r--r-- , they are lrw-r--r-- .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Resources/JavaPlugin Cocoa.bundle", should be drwxr-xr-x , they are lrwxr-xr-x .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Resources/JavaPlugin Cocoa.bundle/Contents/Resources/Java/deploy.jar", should be -rw-r--r-- , they are lrw-r--r-- .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Resources/JavaPlugin Cocoa.bundle/Contents/Resources/Java/libdeploy.jnilib", should be -rwxr-xr-x , they are lrwxr-xr-x .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Deploy.bundle/ Contents/Home/lib/security/cacerts", should be -rw-r--r-- , they are lrw-r--r-- .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Deploy.bundle/ Contents/Resources/Java/deploy.jar", should be -rw-r--r-- , they are lrw-r--r-- .
    Permissions differ on "System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Deploy.bundle/ Contents/Resources/Java/libdeploy.jnilib", should be -rwxr-xr-x , they are lrwxr-xr-x .
    Warning: SUID file "System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAg ent" has been modified and will not be repaired.
    Permissions differ on "System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Rem ote Desktop Message.app/Contents/Resources/English.lproj/UIAgent.nib", should be drwxr-xr-x , they are -rwxr-xr-x .
    Permissions differ on "System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreen.app/Contents/Resources/English.lproj/MainMenu.nib", should be drwxr-xr-x , they are -rwxr-xr-x .

    Ignore all these.
    http://support.apple.com/kb/TS1448?viewlocale=en_US

  • Macintosh Java text Editors

    I have been looking for a good macintosh Java text editor for my newphew. His high school is primary macintosh (Mac OS X) workstation based, therefore in order to code/learn Java, he understands that he can use a simple text editor.
    Is there a good text editor for the macintosh? Maybe a comparison is BBEdit for web site development, something with that power.
    Or is there a better simple editor in the terminal he can use?
    Thank you for reading this post.

    You can use TextEdit in plain text mode, or you can go to http://developer.apple.com/ and get Apple's free Project Builder IDE of OS X10.2, which works OK most the time as a text editor with syntax highlighting, but I've found tends to fall over when you try to debug; I've just ordered OS X 10.3 which comes with XCode, which looks prettier, and may even work.
    For the one or two class examples I post here, I use project builder as a text editor, and compile from the terminal. For larger projects, I use project builder but have to be disciplined about saving regularly.
    I've also used J (http://sourceforge.net/projects/armedbear-j/), though mainly under linux on a slow laptop, which is quite fast and lightweight, and being Java portable. I will go try it on the Mac forthwith.
    Pete

  • JApplet copy/paste on Macintosh - java.policy?

    Hi,
    We've developed an entire application using Java applets which produces some HTML content in a JTextArea displayed in a new JFrame. The content of the JTextArea needs to be copy/pasted in another application for further processing. The application should work on a Windows and a Macintosh computer.
    When trying to copy/paste the content of the JTextArea on a Windows system, everything works fine on both Netscape and Internet Explorer browsers.
    When I try to copy/paste the same content on a Macintosh machine I got stuck. The applet works fine, produces the desired result but copy is disabled and none of the shortcuts work (both Netscape and Internet Explorer). The application has been tested on a Mac OS 8.6/9.0 & 10 system, all suffering from the same problem.
    I tried to solve this using the Clipboard object but that didn't help me much as it throws a SecurityException. This could be solved on a Windows system through the java.policy file but I can't find if this exists on the Macintosh.
    Any ideas or suggestions to work this issue out?
    Any help appreciated,
    Frederik

    If you sign the jar file this should fix your problems.
    Use keytool to generate keys
    Use jarsigner to sign the jar
    keytool -genkey -alias {MYALIAS_NAME} -keystore {MYSTORE_FILE}
    //then answer all the questions
    jarsigner -keystore {MYSTORE_FILE} -signedjar {MYSIGNEDJAR_FILE} {MYJAR_FILE} {MYALIAS_NAME}
    //again answer some questions

  • Java/Limeware errors - Macintosh

    Hello people !!
    I'm looking for help.
    I have installed Limeware to run over OSX system (macintosh)
    But everytime i want to open the program, i receive this:
    Cannot launch java aplication
    Uncaught exception in main method:
    java.lang.RuntimeException: settings dir not writable.
    Thanks in advance
    Martin

    looks to me like you need to find your settings directory
    and unset the read-only flag.

  • Macintosh Java

    I was wondering if anyone knows what the latest version of Java is for Macintosh. I currnetly have 1.0 on my Macentosh, is there a newer version? thanks.
    ...Chris

    If you're running OS X, you can run 1.3 (Java2). I believe prior OS's only support 1.1.8.

  • Steps to setup for my  Java Swing Desktop Application on Macintosh

    hi guys,
    I need help from all of u to create the setup for my Desktop application (developed in swings) on Macintosh. pls give me the references at least. how to approach the tools.
    its urgent...please....
    thanks in advance.
    -siva

    hi guys,
    I need help from all of u to create the setup for my Desktop application (developed in swings) on Macintosh. pls give me the references at least. how to approach the tools.
    its urgent...please....
    thanks in advance.
    -siva

  • Bidirectional text in java swing for macintosh

    Hi,
    I have a problem in displaying bidirectional text in Swing text components in macintosh .But in awt components it is displayed properly.Please advice
    Thanks

    What is bidirectional text?

  • Macintosh support for Java applets

    Is there a way to auto-install the Java Runtime and plugin for Mac browsers like Internet Explorer and Netscape?
    Do the <object classid...> tags work on Macs too?
    I do know that Mac OS X shipped with Java 1.3.1. But how can I find out if the plugin is supported by a Mac user's browser?
    thank you very much.

    Has anyone gotten applets with on OS X?!?!? I have an applet that is in signed JARs on my web server. Once they get cached, I get the following in the Java Console:
    Trace level set to 5: basic, net, security, ext, liveconnect ... completed.
    baseURL is https://myserver:11443/iBiomaticsPortal/ppv/
    documentURL is https://myserver:11443/iBiomaticsPortal/ppv/yo.jsp
    Referencing classloader: sun.plugin.ClassLoaderInfo@49d886, refcount=1
    Added trace listener: com.apple.mrj.JavaEmbedding.JE_AppletViewerPanel[com.ibiomatics.ppv.applet.Applet,0,0,0x0,invalid,layout=java.awt.BorderLayout]
    Sending events to applet. LOAD
    Determine if the applet requests to install any JAR
    Jar cache option: Plugin
    Jar archive(s): DEapplet.jar,DEserverstubs.jar,jcchart451Kplus.jar
    Jar cache version(s): 1.0.3.0,1.0.3.0,3.0.0.1
    Check if DEapplet.jar exists as entry in cache table
    Check if DEapplet.jar actually exists in cache
    Check if DEapplet.jar is upto-date
    DEapplet.jar is upto-date in cache
    Check if DEserverstubs.jar exists as entry in cache table
    Check if DEserverstubs.jar actually exists in cache
    Check if DEserverstubs.jar is upto-date
    DEserverstubs.jar is upto-date in cache
    Check if jcchart451Kplus.jar exists as entry in cache table
    Check if jcchart451Kplus.jar actually exists in cache
    Check if jcchart451Kplus.jar is upto-date
    jcchart451Kplus.jar is upto-date in cache
    Sending events to applet. INIT
    Applet Installation finished.
    Sending events to applet. START
    java.lang.ClassFormatError: com/ibiomatics/ppv/applet/Applet (Bad magic number)
         at java.lang.ClassLoader.defineClass0(Native Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:488)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:106)
         at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:138)
         at sun.plugin.security.PluginClassLoader.access$201(PluginClassLoader.java:47)
         at sun.plugin.security.PluginClassLoader$1.run(PluginClassLoader.java:284)
         at java.security.AccessController.doPrivileged(Native Method)
         at sun.plugin.security.PluginClassLoader.findClass(PluginClassLoader.java:272)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
         at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:107)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
         at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:463)
         at sun.applet.AppletPanel.createApplet(AppletPanel.java:581)
         at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1334)
         at sun.applet.AppletPanel.runLoader(AppletPanel.java:510)
         at sun.applet.AppletPanel.run(AppletPanel.java:288)
         at java.lang.Thread.run(Thread.java:491)
    If I look at the actual contents of the JAR file(s) in the cache, they are not JARs at all. They are HTML (text) files that look like this:
    <html><head><title>302 Moved Temporarily</title></head>
    <body bgcolor="#FFFFFF">
    <p>This document you requested has moved temporarily.</p>
    <p>It's now at /iBiomaticsSecurity/Login.jsp;jsessionid=211MQ0XryekiU1PrEyFAjBt8oe47JOlNJJnf7lvpgFMrXLPCl8Uw!-713944120!-1069893353!11800!11443.</p>
    </body></html>
    I have tried just about everything. My client is OS 10.2 running IE 5.2. I get the same results in Mozilla and Safari.
    Here is the the HTML that contains my applet tag:
    <HTML>
    <HEAD>
    <TITLE>P21 (TM) Data Explorer</TITLE>
    </HEAD>
    <BODY>
    <APPLET WIDTH=100% HEIGHT=100% CODEBASE="https://myserver:11443/iBiomaticsPortal/ppv" CODE="com.ibiomatics.ppv.applet.Applet">
    <PARAM NAME="CACHE_OPTION" VALUE="Plugin"/>
    <PARAM NAME="CACHE_ARCHIVE" VALUE="DEapplet.jar,DEserverstubs.jar,jcchart451Kplus.jar"/>
    <PARAM NAME="CACHE_VERSION" VALUE="1.0.3.0,1.0.3.0,3.0.0.1"/>
    <PARAM NAME = "MAYSCRIPT" VALUE="true"/>
    <PARAM NAME = "ibioConnectionType" VALUE="servlet"/>
    <PARAM NAME = "ibioPPVhostname" VALUE="https://myserver"/>
    <PARAM NAME = "ibioPPVportnumber" VALUE="11443"/>
    <PARAM NAME = "ibioPPVDAM" VALUE="com.ibiomatics.analysis.server.demoDAM"/>
    <PARAM NAME = "ibioPPVProjectID" VALUE="NDA"/>
    <PARAM NAME = "ibioPPVStudyID" VALUE="NDA~PHCSAMPLE"/>
    <PARAM NAME = "ibioStudyManagerClass" VALUE="com.ibiomatics.analysis.server.ppvStudyManager"/>
    <PARAM NAME = "ibioGDBenabled" VALUE="false"/>
    <PARAM NAME = "lookAndFeel" VALUE="metal"/>
    </APPLET>
    </BODY>
    </HTML>
    Thanks in advance,
    Drew

  • When will java 1.4 available on Macintosh ?

    I tried to look on http://developer.apple.com/java/ but it didn't have any information about java timeline.
    Thanks in advance

    You may want to post your question on the Java-dev mailing list available at lists.apple.com:
    http://lists.apple.com/mailman/listinfo/java-dev

  • How to open new webBrowser in java with BrowserLauncher.java

    I m using BrowserLauncher.java which opens default webBrowser but i want to open new webBrowser for new request each time.
    Plz suggest to me what changes i have to made in this java class.
    it is very urgent???
    package com.pst.lmsgui.utils;
    import java.io.File;
    import java.io.IOException;
    import java.lang.reflect.Constructor;
    import java.lang.reflect.Field;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    * BrowserLauncher is a class that provides one static method, openURL, which opens the default
    * web browser for the current user of the system to the given URL. It may support other
    * protocols depending on the system -- mailto, ftp, etc. -- but that has not been rigorously
    * tested and is not guaranteed to work.
    * <p>
    * Yes, this is platform-specific code, and yes, it may rely on classes on certain platforms
    * that are not part of the standard JDK. What we're trying to do, though, is to take something
    * that's frequently desirable but inherently platform-specific -- opening a default browser --
    * and allow programmers (you, for example) to do so without worrying about dropping into native
    * code or doing anything else similarly evil.
    * <p>
    * Anyway, this code is completely in Java and will run on all JDK 1.1(or better)-compliant systems without
    * modification or a need for additional libraries. All classes that are required on certain
    * platforms to allow this to run are dynamically loaded at runtime via reflection and, if not
    * found, will not cause this to do anything other than returning an error when opening the
    * browser.
    * <p>
    * There are certain system requirements for this class, as it's running through Runtime.exec(),
    * which is Java's way of making a native system call. Currently, this requires that a Macintosh
    * have a Finder which supports the GURL event, which is true for Mac OS 8.0 and 8.1 systems that
    * have the Internet Scripting AppleScript dictionary installed in the Scripting Additions folder
    * in the Extensions folder (which is installed by default as far as I know under Mac OS 8.0 and
    * 8.1), and for all Mac OS 8.5 and later systems. On Windows, it only runs under Win32 systems
    * (Windows 95, 98, and NT 4.0, as well as later versions of all). On other systems, this drops
    * back from the inherently platform-sensitive concept of a default browser and simply attempts
    * to launch Netscape via a shell command.
    * <p>
    * This code is Copyright 1999 by Eric Albert ([email protected]) and may be redistributed
    * or modified in any form without restrictions as long as the portion of this comment from this
    * paragraph through the end of the comment is not removed. The author requests that he be
    * notified of any application, applet, or other binary that makes use of this code, but that's
    * more out of curiosity than anything and is not required. This software includes no warranty.
    public class BrowserLauncher
    * The Java virtual machine that we are running on. Actually, in most cases we only care
    * about the operating system, but some operating systems require us to switch on the VM. */
    private static int jvm;
    /** The browser for the system */
    private static Object browser;
    * Caches whether any classes, methods, and fields that are not part of the JDK and need to
    * be dynamically loaded at runtime loaded successfully.
    * <p>
    * Note that if this is <code>false</code>, <code>openURL()</code> will always return an
    * IOException.
    private static boolean loadedWithoutErrors;
    /** The com.apple.mrj.MRJFileUtils class */
    private static Class mrjFileUtilsClass;
    /** The com.apple.mrj.MRJOSType class */
    private static Class mrjOSTypeClass;
    /** The com.apple.MacOS.MacOSError class */
    private static Class macOSErrorClass;
    /** The com.apple.MacOS.AEDesc class */
    private static Class aeDescClass;
    /** The <init>(int) method of com.apple.MacOS.AETarget */
    private static Constructor aeTargetConstructor;
    /** The <init>(int, int, int) method of com.apple.MacOS.AppleEvent */
    private static Constructor appleEventConstructor;
    /** The <init>(String) method of com.apple.MacOS.AEDesc */
    private static Constructor aeDescConstructor;
    /** The findFolder method of com.apple.mrj.MRJFileUtils */
    private static Method findFolder;
    /** The getFileType method of com.apple.mrj.MRJOSType */
    private static Method getFileType;
    /** The makeOSType method of com.apple.MacOS.OSUtils */
    private static Method makeOSType;
    /** The putParameter method of com.apple.MacOS.AppleEvent */
    private static Method putParameter;
    /** The sendNoReply method of com.apple.MacOS.AppleEvent */
    private static Method sendNoReply;
    /** Actually an MRJOSType pointing to the System Folder on a Macintosh */
    private static Object kSystemFolderType;
    /** The keyDirectObject AppleEvent parameter type */
    private static Integer keyDirectObject;
    /** The kAutoGenerateReturnID AppleEvent code */
    private static Integer kAutoGenerateReturnID;
    /** The kAnyTransactionID AppleEvent code */
    private static Integer kAnyTransactionID;
    /** JVM constant for MRJ 2.0 */
    private static final int MRJ_2_0 = 0;
    /** JVM constant for MRJ 2.1 or later */
    private static final int MRJ_2_1 = 1;
    /** JVM constant for any Windows 9x JVM */
    private static final int WINDOWS_9x = 2;
    /** JVM constant for any Windows NT JVM */
    private static final int WINDOWS_NT = 3;
    /** JVM constant for any other platform */
    private static final int OTHER = -1;
    * The file type of the Finder on a Macintosh. Hardcoding "Finder" would keep non-U.S. English
    * systems from working properly.
    private static final String FINDER_TYPE = "FNDR";
    * The creator code of the Finder on a Macintosh, which is needed to send AppleEvents to the
    * application.
    private static final String FINDER_CREATOR = "MACS";
    /** The name for the AppleEvent type corresponding to a GetURL event. */
    private static final String GURL_EVENT = "GURL";
    * The first parameter that needs to be passed into Runtime.exec() to open the default web
    * browser on Windows.
    private static final String FIRST_WINDOWS_PARAMETER = "/c";
    /** The second parameter for Runtime.exec() on Windows. */
    private static final String SECOND_WINDOWS_PARAMETER = "start";
    * The shell parameters for Netscape that opens a given URL in an already-open copy of Netscape
    * on many command-line systems.
    private static final String NETSCAPE_OPEN_PARAMETER_START = " -remote openURL(";
    private static final String NETSCAPE_OPEN_PARAMETER_END = ")";
    * The message from any exception thrown throughout the initialization process.
    private static String errorMessage;
    * An initialization block that determines the operating system and loads the necessary
    * runtime data.
    static
    loadedWithoutErrors = true;
    String osName = System.getProperty("os.name");
    if ("Mac OS".equals(osName))
    String mrjVersion = System.getProperty("mrj.version");
    String majorMRJVersion = mrjVersion.substring(0, 3);
    try
    double version =
    Double.valueOf(majorMRJVersion).doubleValue();
    if (version == 2)
    jvm = MRJ_2_0;
    else if (version >= 2.1)
    // For the time being, assume that all post-2.0 versions of MRJ work the same
    jvm = MRJ_2_1;
    else
    loadedWithoutErrors = false;
    errorMessage = "Unsupported MRJ version: " + version;
    catch (NumberFormatException nfe)
    loadedWithoutErrors = false;
    errorMessage = "Invalid MRJ version: " + mrjVersion;
    else if (osName.startsWith("Windows"))
    { //still needs verification against Win2K
    if (osName.indexOf("9") != -1)
    jvm = WINDOWS_9x;
    else
    jvm = WINDOWS_NT;
    else
    jvm = OTHER;
    if (loadedWithoutErrors)
    { // if we haven't hit any errors yet
    loadedWithoutErrors = loadClasses();
    * This class should be never be instantiated; this just ensures so.
    BrowserLauncher()
    * Called by a static initializer to load any classes, fields, and methods required at runtime
    * to locate the user's web browser.
    * @return <code>true</code> if all intialization succeeded
    *               <code>false</code> if any portion of the initialization failed
    private static boolean loadClasses()
    switch (jvm)
    case MRJ_2_0:
    try
    Class aeTargetClass = Class.forName("com.apple.MacOS.AETarget");
    macOSErrorClass = Class.forName("com.apple.MacOS.MacOSError");
    Class osUtilsClass = Class.forName("com.apple.MacOS.OSUtils");
    Class appleEventClass = Class.forName("com.apple.MacOS.AppleEvent");
    Class aeClass = Class.forName("com.apple.MacOS.ae");
    aeDescClass = Class.forName("com.apple.MacOS.AEDesc");
    aeTargetConstructor =
    aeTargetClass.getDeclaredConstructor(
    new Class []{ int.class });
    appleEventConstructor =
    appleEventClass.getDeclaredConstructor(
    new Class[]{ int.class, int.class,
    aeTargetClass, int.class, int.class });
    aeDescConstructor = aeDescClass.getDeclaredConstructor(
    new Class[]{ String.class });
    makeOSType =
    osUtilsClass.getDeclaredMethod("makeOSType",
    new Class []{ String.class });
    putParameter =
    appleEventClass.getDeclaredMethod("putParameter",
    new Class[]{ int.class, aeDescClass });
    sendNoReply =
    appleEventClass.getDeclaredMethod("sendNoReply",
    new Class[]{ });
    Field keyDirectObjectField =
    aeClass.getDeclaredField("keyDirectObject");
    keyDirectObject =
    (Integer) keyDirectObjectField.get(null);
    Field autoGenerateReturnIDField =
    appleEventClass.getDeclaredField("kAutoGenerateReturnID");
    kAutoGenerateReturnID =
    (Integer) autoGenerateReturnIDField.get(null);
    Field anyTransactionIDField =
    appleEventClass.getDeclaredField("kAnyTransactionID");
    kAnyTransactionID =
    (Integer) anyTransactionIDField.get(null);
    catch (ClassNotFoundException cnfe)
    errorMessage = cnfe.getMessage();
    return false;
    catch (NoSuchMethodException nsme)
    errorMessage = nsme.getMessage();
    return false;
    catch (NoSuchFieldException nsfe)
    errorMessage = nsfe.getMessage();
    return false;
    catch (IllegalAccessException iae)
    errorMessage = iae.getMessage();
    return false;
    break;
    case MRJ_2_1:
    try
    mrjFileUtilsClass = Class.forName("com.apple.mrj.MRJFileUtils");
    mrjOSTypeClass = Class.forName("com.apple.mrj.MRJOSType");
    Field systemFolderField =
    mrjFileUtilsClass.getDeclaredField("kSystemFolderType");
    kSystemFolderType = systemFolderField.get(null);
    findFolder =
    mrjFileUtilsClass.getDeclaredMethod("findFolder",
    new Class[]{ mrjOSTypeClass });
    getFileType =
    mrjFileUtilsClass.getDeclaredMethod("getFileType",
    new Class[]{ File.class });
    catch (ClassNotFoundException cnfe)
    errorMessage = cnfe.getMessage();
    return false;
    catch (NoSuchFieldException nsfe)
    errorMessage = nsfe.getMessage();
    return false;
    catch (NoSuchMethodException nsme)
    errorMessage = nsme.getMessage();
    return false;
    catch (SecurityException se)
    errorMessage = se.getMessage();
    return false;
    catch (IllegalAccessException iae)
    errorMessage = iae.getMessage();
    return false;
    break;
    return true;
    * Attempts to locate the default web browser on the local system. Caches results so it
    * only locates the browser once for each use of this class per JVM instance.
    * @return The browser for the system. Note that this may not be what you would consider
    *     to be a standard web browser; instead, it's the application that gets called to
    *     open the default web browser. In some cases, this will be a non-String object
    *     that provides the means of calling the default browser.
    private static Object locateBrowser()
    if (browser != null)
    return browser;
    switch (jvm)
    case MRJ_2_0:
    try
    Integer finderCreatorCode =
    (Integer) makeOSType.invoke(null,
    new Object[]{ FINDER_CREATOR });
    Object aeTarget = aeTargetConstructor.newInstance(
    new Object[]{ finderCreatorCode });
    Integer gurlType = (Integer) makeOSType.invoke(null,
    new Object[]{ GURL_EVENT });
    Object appleEvent = appleEventConstructor.newInstance(
    new Object[]{ gurlType, gurlType, aeTarget,
    kAutoGenerateReturnID, kAnyTransactionID });
    // Don't set browser = appleEvent because then the next time we call
    // locateBrowser(), we'll get the same AppleEvent, to which we'll already have
    // added the relevant parameter. Instead, regenerate the AppleEvent every time.
    // There's probably a way to do this better; if any has any ideas, please let
    // me know.
    return appleEvent;
    catch (IllegalAccessException iae)
    browser = null;
    errorMessage = iae.getMessage();
    return browser;
    catch (InstantiationException ie)
    browser = null;
    errorMessage = ie.getMessage();
    return browser;
    catch (InvocationTargetException ite)
    browser = null;
    errorMessage = ite.getMessage();
    return browser;
    case MRJ_2_1:
    File systemFolder;
    try
    systemFolder = (File) findFolder.invoke(null,
    new Object[]{ kSystemFolderType });
    catch (IllegalArgumentException iare)
    browser = null;
    errorMessage = iare.getMessage();
    return browser;
    catch (IllegalAccessException iae)
    browser = null;
    errorMessage = iae.getMessage();
    return browser;
    catch (InvocationTargetException ite)
    browser = null;
    errorMessage = ite.getTargetException().getClass() +
    ": " + ite.getTargetException().getMessage();
    return browser;
    String[] systemFolderFiles = systemFolder.list();
    // Avoid a FilenameFilter because that can't be stopped mid-list
    for (int i = 0; i < systemFolderFiles.length; i++)
    try
    File file = new File(systemFolder,
    systemFolderFiles);
    if (!file.isFile())
    continue;
    Object fileType = getFileType.invoke(null,
    new Object[]{ file });
    if (FINDER_TYPE.equals(fileType.toString()))
    browser = file.toString(); // Actually the Finder, but that's OK
    return browser;
    catch (IllegalArgumentException iare)
    browser = browser;
    errorMessage = iare.getMessage();
    return null;
    catch (IllegalAccessException iae)
    browser = null;
    errorMessage = iae.getMessage();
    return browser;
    catch (InvocationTargetException ite)
    browser = null;
    errorMessage = ite.getTargetException().getClass() +
    ": " + ite.getTargetException().
    getMessage();
    return browser;
    browser = null;
    break;
    case WINDOWS_NT:
    browser = "cmd.exe";
    break;
    case WINDOWS_9x:
    browser = "command.com";
    break;
    case OTHER: //fall through
    default:
    browser = "netscape";
    break;
    return browser;
    * Attempts to open the default web browser to the given URL.
    * @param url The URL to open
    * @throws IOException If the web browser could not be located or does not run
    public static void openURL(String url) throws IOException
    if (!loadedWithoutErrors)
    throw new IOException("Exception in finding browser: " +
    errorMessage);
    Object browser = locateBrowser();
    if (browser == null)
    throw new IOException("Unable to locate browser: " +
    errorMessage);
    switch (jvm)
    case MRJ_2_0:
    Object aeDesc = null;
    try
    aeDesc = aeDescConstructor.newInstance(
    new Object[]{ url });
    putParameter.invoke(browser,
    new Object[]{ keyDirectObject, aeDesc });
    sendNoReply.invoke(browser, new Object[]{ });
    catch (InvocationTargetException ite)
    throw new IOException(
    "InvocationTargetException while creating AEDesc: " +
    ite.getMessage());
    catch (IllegalAccessException iae)
    throw new IOException(
    "IllegalAccessException while building AppleEvent: " +
    iae.getMessage());
    catch (InstantiationException ie)
    throw new IOException(
    "InstantiationException while creating AEDesc: " +
    ie.getMessage());
    finally { aeDesc = null; // Encourage it to get disposed if it was created
    browser = null; // Ditto
    } break;
    case MRJ_2_1:
    Runtime.getRuntime().exec(
    new String[]{ (String) browser, url });
    break;
    case WINDOWS_NT://fall through
    case WINDOWS_9x:
    Runtime.getRuntime().exec( new String[]{ (String) browser,
    FIRST_WINDOWS_PARAMETER,
    SECOND_WINDOWS_PARAMETER, url });
    break;
    case OTHER:
    // Assume that we're on Unix and that Netscape is installed
    // First, attempt to open the URL in a currently running session of Netscape
    Process process =
    Runtime.getRuntime().exec((String) browser +
    NETSCAPE_OPEN_PARAMETER_START + url +
    NETSCAPE_OPEN_PARAMETER_END);
    try
    int exitCode = process.waitFor();
    if (exitCode != 0)
    { // if Netscape was not open
    Runtime.getRuntime().exec(
    new String[]{ (String) browser, url });
    catch (InterruptedException ie)
    throw new IOException(
    "InterruptedException while launching browser: " +
    ie.getMessage());
    break;
    default:
    // This should never occur, but if it does, we'll try the simplest thing possible
    Runtime.getRuntime().exec(
    new String[]{ (String) browser, url });
    break;
    // Driver to test class
    public static void main(String[] args) throws IOException
         BrowserLauncher br = new BrowserLauncher();
    if (args.length != 1)
    br.openURL("http://mail.lionbridge.com");
    else
    br.openURL(args[0]);

    package com.pst.lmsgui.utils;
    import java.io.File;
    import java.io.IOException;
    import java.lang.reflect.Constructor;
    import java.lang.reflect.Field;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    * BrowserLauncher is a class that provides one static method, openURL, which opens the default
    * web browser for the current user of the system to the given URL. It may support other
    * protocols depending on the system -- mailto, ftp, etc. -- but that has not been rigorously
    * tested and is not guaranteed to work.
    * Yes, this is platform-specific code, and yes, it may rely on classes on certain platforms
    * that are not part of the standard JDK. What we're trying to do, though, is to take something
    * that's frequently desirable but inherently platform-specific -- opening a default browser --
    * and allow programmers (you, for example) to do so without worrying about dropping into native
    * code or doing anything else similarly evil.
    * Anyway, this code is completely in Java and will run on all JDK 1.1(or better)-compliant systems without
    * modification or a need for additional libraries. All classes that are required on certain
    * platforms to allow this to run are dynamically loaded at runtime via reflection and, if not
    * found, will not cause this to do anything other than returning an error when opening the
    * browser.
    * There are certain system requirements for this class, as it's running through Runtime.exec(),
    * which is Java's way of making a native system call. Currently, this requires that a Macintosh
    * have a Finder which supports the GURL event, which is true for Mac OS 8.0 and 8.1 systems that
    * have the Internet Scripting AppleScript dictionary installed in the Scripting Additions folder
    * in the Extensions folder (which is installed by default as far as I know under Mac OS 8.0 and
    * 8.1), and for all Mac OS 8.5 and later systems. On Windows, it only runs under Win32 systems
    * (Windows 95, 98, and NT 4.0, as well as later versions of all). On other systems, this drops
    * back from the inherently platform-sensitive concept of a default browser and simply attempts
    * to launch Netscape via a shell command.
    * This code is Copyright 1999 by Eric Albert ([email protected]) and may be redistributed
    * or modified in any form without restrictions as long as the portion of this comment from this
    * paragraph through the end of the comment is not removed. The author requests that he be
    * notified of any application, applet, or other binary that makes use of this code, but that's
    * more out of curiosity than anything and is not required. This software includes no warranty.
    public class BrowserLauncher {
    * The Java virtual machine that we are running on. Actually, in most cases we only care
    * about the operating system, but some operating systems require us to switch on the VM.
    private static int jvm; /** The browser for the system */
    private static Object browser;
    * Caches whether any classes, methods, and fields that are not part of the JDK and need to
    * be dynamically loaded at runtime loaded successfully.
    * Note that if this is <code>false</code>, <code>openURL()</code> will always return an
    * IOException.
    private static boolean loadedWithoutErrors; /** The com.apple.mrj.MRJFileUtils class */
    private static Class mrjFileUtilsClass; /** The com.apple.mrj.MRJOSType class */
    private static Class mrjOSTypeClass; /** The com.apple.MacOS.MacOSError class */
    private static Class macOSErrorClass; /** The com.apple.MacOS.AEDesc class */
    private static Class aeDescClass; /** The <init>(int) method of com.apple.MacOS.AETarget */
    private static Constructor aeTargetConstructor; /** The <init>(int, int, int) method of com.apple.MacOS.AppleEvent */
    private static Constructor appleEventConstructor; /** The <init>(String) method of com.apple.MacOS.AEDesc */
    private static Constructor aeDescConstructor; /** The findFolder method of com.apple.mrj.MRJFileUtils */
    private static Method findFolder; /** The getFileType method of com.apple.mrj.MRJOSType */
    private static Method getFileType; /** The makeOSType method of com.apple.MacOS.OSUtils */
    private static Method makeOSType; /** The putParameter method of com.apple.MacOS.AppleEvent */
    private static Method putParameter; /** The sendNoReply method of com.apple.MacOS.AppleEvent */
    private static Method sendNoReply; /** Actually an MRJOSType pointing to the System Folder on a Macintosh */
    private static Object kSystemFolderType; /** The keyDirectObject AppleEvent parameter type */
    private static Integer keyDirectObject; /** The kAutoGenerateReturnID AppleEvent code */
    private static Integer kAutoGenerateReturnID; /** The kAnyTransactionID AppleEvent code */
    private static Integer kAnyTransactionID; /** JVM constant for MRJ 2.0 */
    private static final int MRJ_2_0 = 0; /** JVM constant for MRJ 2.1 or later */
    private static final int MRJ_2_1 = 1; /** JVM constant for any Windows 9x JVM */
    private static final int WINDOWS_9x = 2; /** JVM constant for any Windows NT JVM */
    private static final int WINDOWS_NT = 3; /** JVM constant for any other platform */
    private static final int OTHER = -1; /** * The file type of the Finder on a Macintosh. Hardcoding "Finder" would keep non-U.S. English * systems from working properly. */
    private static final String FINDER_TYPE = "FNDR"; /** * The creator code of the Finder on a Macintosh, which is needed to send AppleEvents to the * application. */
    private static final String FINDER_CREATOR = "MACS"; /** The name for the AppleEvent type corresponding to a GetURL event. */
    private static final String GURL_EVENT = "GURL"; /** * The first parameter that needs to be passed into Runtime.exec() to open the default web * browser on Windows. */
    private static final String FIRST_WINDOWS_PARAMETER = "/c"; /** The second parameter for Runtime.exec() on Windows. */
    private static final String SECOND_WINDOWS_PARAMETER = "start";
    * The shell parameters for Netscape that opens a given URL in an already-open copy of Netscape
    * on many command-line systems.
    private static final String NETSCAPE_OPEN_PARAMETER_START = " -remote openURL(";
    private static final String NETSCAPE_OPEN_PARAMETER_END = ")"; /** * The message from any exception thrown throughout the initialization process. */
    private static String errorMessage; /** * An initialization block that determines the operating system and loads the necessary * runtime data. */
    static {
    loadedWithoutErrors = true;
    String osName = System.getProperty("os.name");
    if ("Mac OS".equals(osName)) {
    String mrjVersion = System.getProperty("mrj.version");
    String majorMRJVersion = mrjVersion.substring(0, 3);
    try {
    double version = Double.valueOf(majorMRJVersion).doubleValue();
    if (version == 2) {
    jvm = MRJ_2_0;
    } else if (version >= 2.1) { // For the time being, assume that all post-2.0 versions of MRJ work the same
    jvm = MRJ_2_1;
    } else {
    loadedWithoutErrors = false;
    errorMessage = "Unsupported MRJ version: " + version;
    } catch (NumberFormatException nfe) {
    loadedWithoutErrors = false;
    errorMessage = "Invalid MRJ version: " + mrjVersion;
    } else if (osName.startsWith("Windows")) { //still needs verification against Win2K
    if (osName.indexOf("9") != -1) {
    jvm = WINDOWS_9x;
    } else {
    jvm = WINDOWS_NT;
    } else {
    jvm = OTHER;
    if (loadedWithoutErrors) { // if we haven't hit any errors yet
    loadedWithoutErrors = loadClasses();
    } /** * This class should be never be instantiated; this just ensures so. */
    BrowserLauncher() { }
    * Called by a static initializer to load any classes, fields, and methods required at runtime * to locate the user's web browser.
    * @return <code>true</code> if all intialization succeeded * <code>false</code> if any portion of the initialization failed */
    private static boolean loadClasses() {
    switch (jvm) {
    case MRJ_2_0:
    try {
    Class aeTargetClass = Class.forName("com.apple.MacOS.AETarget");
    macOSErrorClass = Class.forName("com.apple.MacOS.MacOSError");
    Class osUtilsClass = Class.forName("com.apple.MacOS.OSUtils");
    Class appleEventClass = Class.forName("com.apple.MacOS.AppleEvent");
    Class aeClass = Class.forName("com.apple.MacOS.ae");
    aeDescClass = Class.forName("com.apple.MacOS.AEDesc");
    aeTargetConstructor = aeTargetClass.getDeclaredConstructor( new Class []{ int.class });
    appleEventConstructor = appleEventClass.getDeclaredConstructor( new Class[]{ int.class, int.class, aeTargetClass, int.class, int.class });
    aeDescConstructor = aeDescClass.getDeclaredConstructor( new Class[]{ String.class });
    makeOSType = osUtilsClass.getDeclaredMethod("makeOSType", new Class []{ String.class });
    putParameter = appleEventClass.getDeclaredMethod("putParameter", new Class[]{ int.class, aeDescClass });
    sendNoReply = appleEventClass.getDeclaredMethod("sendNoReply", new Class[]{ });
    Field keyDirectObjectField = aeClass.getDeclaredField("keyDirectObject");
    keyDirectObject = (Integer) keyDirectObjectField.get(null);
    Field autoGenerateReturnIDField = appleEventClass.getDeclaredField("kAutoGenerateReturnID");
    kAutoGenerateReturnID = (Integer) autoGenerateReturnIDField.get(null);
    Field anyTransactionIDField = appleEventClass.getDeclaredField("kAnyTransactionID");
    kAnyTransactionID = (Integer) anyTransactionIDField.get(null);
    } catch (ClassNotFoundException cnfe) {
    errorMessage = cnfe.getMessage();
    return false;
    } catch (NoSuchMethodException nsme) {
    errorMessage = nsme.getMessage();
    return false;
    } catch (NoSuchFieldException nsfe) {
    errorMessage = nsfe.getMessage();
    return false;
    } catch (IllegalAccessException iae) {
    errorMessage = iae.getMessage();
    return false;
    } break;
    case MRJ_2_1:
    try {
    mrjFileUtilsClass = Class.forName("com.apple.mrj.MRJFileUtils");
    mrjOSTypeClass = Class.forName("com.apple.mrj.MRJOSType");
    Field systemFolderField = mrjFileUtilsClass.getDeclaredField("kSystemFolderType");
    kSystemFolderType = systemFolderField.get(null);
    findFolder = mrjFileUtilsClass.getDeclaredMethod("findFolder", new Class[]{ mrjOSTypeClass });
    getFileType = mrjFileUtilsClass.getDeclaredMethod("getFileType", new Class[]{ File.class });
    } catch (ClassNotFoundException cnfe) {
    errorMessage = cnfe.getMessage();
    return false;
    } catch (NoSuchFieldException nsfe) {
    errorMessage = nsfe.getMessage();
    return false;
    } catch (NoSuchMethodException nsme) {
    errorMessage = nsme.getMessage();
    return false;
    } catch (SecurityException se) {
    errorMessage = se.getMessage();
    return false;
    } catch (IllegalAccessException iae) {
    errorMessage = iae.getMessage();
    return false;
    break;
    return true;
    * Attempts to locate the default web browser on the local system. Caches results so it
    * only locates the browser once for each use of this class per JVM instance.
    * @return The browser for the system. Note that this may not be what you would consider
    * to be a standard web browser; instead, it's the application that gets called to
    * open the default web browser. In some cases, this will be a non-String object
    * that provides the means of calling the default browser.
    private static Object locateBrowser() {
    if (browser != null) {
    return browser;
    switch (jvm) {
    case MRJ_2_0:
    try {
    Integer finderCreatorCode = (Integer) makeOSType.invoke(null, new Object[]{ FINDER_CREATOR });
    Object aeTarget = aeTargetConstructor.newInstance( new Object[]{ finderCreatorCode });
    Integer gurlType = (Integer) makeOSType.invoke(null, new Object[]{ GURL_EVENT });
    Object appleEvent = appleEventConstructor.newInstance( new Object[]{ gurlType, gurlType, aeTarget, kAutoGenerateReturnID, kAnyTransactionID });
    // Don't set browser = appleEvent because then the next time we call
    // locateBrowser(), we'll get the same AppleEvent, to which we'll already have
    // added the relevant parameter. Instead, regenerate the AppleEvent every time.
    // There's probably a way to do this better; if any has any ideas, please let
    // me know.
    return appleEvent;
    } catch (IllegalAccessException iae) {
    browser = null;
    errorMessage = iae.getMessage();
    return browser;
    } catch (InstantiationException ie) {
    browser = null;
    errorMessage = ie.getMessage();
    return browser;
    } catch (InvocationTargetException ite) {
    browser = null;
    errorMessage = ite.getMessage();
    return browser;
    case MRJ_2_1:
    File systemFolder;
    try {
    systemFolder = (File) findFolder.invoke(null, new Object[]{ kSystemFolderType });
    } catch (IllegalArgumentException iare) {
    browser = null;
    errorMessage = iare.getMessage();
    return browser;
    } catch (IllegalAccessException iae) {
    browser = null;
    errorMessage = iae.getMessage();
    return browser;
    } catch (InvocationTargetException ite) {
    browser = null;
    errorMessage = ite.getTargetException().getClass() + ": " + ite.getTargetException().getMessage();
    return browser;
    String[] systemFolderFiles = systemFolder.list();
    // Avoid a FilenameFilter because that can't be stopped mid-list
    for (int i = 0; i < systemFolderFiles.length; i++) {
    try {
    File file = new File(systemFolder, systemFolderFiles);
    if (!file.isFile()) {
    continue;
    Object fileType = getFileType.invoke(null, new Object[]{ file });
    if (FINDER_TYPE.equals(fileType.toString())) {
    browser = file.toString();
    // Actually the Finder, but that's OK return browser;
    } catch (IllegalArgumentException iare) {
    browser = browser;
    errorMessage = iare.getMessage();
    return null;
    } catch (IllegalAccessException iae) {
    browser = null;
    errorMessage = iae.getMessage();
    return browser;
    } catch (InvocationTargetException ite) {
    browser = null;
    errorMessage = ite.getTargetException().getClass() + ": " + ite.getTargetException(). getMessage();
    return browser;
    browser = null;
    break;
    case WINDOWS_NT:
    browser = "cmd.exe";
    break;
    case WINDOWS_9x:
    browser = "command.com";
    break;
    case OTHER: //fall through
    default:
    browser = "netscape";
    break;
    return browser;
    * Attempts to open the default web browser to the given URL.
    * @param url The URL to open
    * @throws IOException If the web browser could not be located or does not run
    public static void openURL(String url) throws IOException {
    if (!loadedWithoutErrors) {
    throw new IOException("Exception in finding browser: " + errorMessage);
    Object browser = locateBrowser();
    if (browser == null) {
    throw new IOException("Unable to locate browser: " + errorMessage);
    switch (jvm) {
    case MRJ_2_0:
    Object aeDesc = null;
    try {
    aeDesc = aeDescConstructor.newInstance( new Object[]{ url });
    putParameter.invoke(browser, new Object[]{ keyDirectObject, aeDesc });
    sendNoReply.invoke(browser, new Object[]{ });
    } catch (InvocationTargetException ite) {
    throw new IOException( "InvocationTargetException while creating AEDesc: " + ite.getMessage());
    } catch (IllegalAccessException iae) {
    throw new IOException( "IllegalAccessException while building AppleEvent: " + iae.getMessage());
    } catch (InstantiationException ie) {
    throw new IOException( "InstantiationException while creating AEDesc: " + ie.getMessage());
    } finally {
    aeDesc = null; // Encourage it to get disposed if it was created
    browser = null; // Ditto
    } break;
    case MRJ_2_1:
    Runtime.getRuntime().exec( new String[]{ (String) browser, url });
    break;
    case WINDOWS_NT://fall through
    case WINDOWS_9x:
    Runtime.getRuntime().exec( new String[]{ (String) browser, FIRST_WINDOWS_PARAMETER, SECOND_WINDOWS_PARAMETER, url });
    break;
    case OTHER: // Assume that we're on Unix and that Netscape is installed
    // First, attempt to open the URL in a currently running session of Netscape
    Process process = Runtime.getRuntime().exec((String) browser + NETSCAPE_OPEN_PARAMETER_START + url + NETSCAPE_OPEN_PARAMETER_END);
    try {
    int exitCode = process.waitFor();
    if (exitCode != 0) { // if Netscape was not open
    Runtime.getRuntime().exec( new String[]{ (String) browser, url });
    } catch (InterruptedException ie) {
    throw new IOException( "InterruptedException while launching browser: " + ie.getMessage());
    } break;
    default: // This should never occur, but if it does, we'll try the simplest thing possible
    Runtime.getRuntime().exec( new String[]{ (String) browser, url });
    break;
    // Driver to test class
    public static void main(String[] args) throws IOException {
    BrowserLauncher br = new BrowserLauncher();
    if (args.length != 1) br.openURL("http://199.233.155.110:8080");
    else br.openURL(args[0]);

  • What's the Successful Way of Taking Out Java Out Of Safari ?

    Disabled Java in Safari Preferences .
    Heck , Disabled Javascript too .
    Disabled Plugins .
    Disabled Extensions .
    i still get :
    Macintosh HD  >  Library  >  Java  >  Extensions  >  ( unable to view , it's only viewable with a System Administrator ( ie root ) that i don't have the username and/or password for )
    Macintosh HD  >  Library  >  Java  >  JavaVirtualMachines  >   ( unable to view , it's only viewable with a System Administrator ( ie root ) that i don't have the username and/or password for )
    Macintosh HD  >  Library  >  Internet Plug-Ins  >  JavaAppletPlugin.plugin
    I have downloaded and updated OS X 10.8.3 Combo .
    Java isn't listed anywhere in Systems Preferences .  But if i click on the .jar 's and other Java .app 's , i can get the consoles to launch .  I haven't tested if i can work it .  I don't want to .  I don't want it .  I didn't download it .  I didn't launch the .app either . 
    Apple logo  >  System Preferences...  >  ( No Java icon ) .
    In Safari , it doesn't matter if i config the Preferences a hundred times .  Safari after 5 to 10 seconds will load up the Reader in Blue highlight at the top right , which means some type of Adobe Reader is running in the background , which i haven't downloaded and installed and launched , also if i click it , it copies the webpage to a pdf look a like , which is pointless , and then i go back to the Internet Plug-ins and the Extensions in the Safari Preferences and it switches back in front of my eyes to what i set the configuration for .  Like a real-time config edit on the fly .  What is happening ? 
    As i write this Discussion Question , i am constantly being jumped around to write , as if ( if you have ever tested or used remote login and remote access ) there's a slight delay between you computer entry , and the result of the computer entry on the computer you're logged in to and remote accessing .  Strange .  Weird  .  Whatever you wanna call it  .  I got it  .  Very odd computer device behaviour .
    Terminal and Terminal sudo su : 
    java -version
    1.6 build
    Java 6
    i have already gone thru both scenarios of :
    Downloading the Apple Approved Java 2013-002 scenario .  Downloading , installing , launching , and then ultimately once i got it , Disabling it .  It shows up in System Preferences Other with the Java icon .  Also i have downloaded and installed the Java 7 latest Apple Approved Java , and Disabled it .
    Java still persists .
    And then if i Delete the Java .app 's and plugin 's , etc , etc , etc , what happens is ultimately i get the infamous Apple Windmill for about 5 seconds , and then asks , you are attempting to make changes , so Enter in your Administrator username and password , and i do , and the System Administrator ( ie root ) user that has this access , i do not know , so i am essentially stuck with a OS X with missing Software that can't be unistalled / reinstalled / repaired , and then i must Clean Install OS X in Recovery since it's inoperable .

    And what's your thoughts on this ?      http://support.apple.com/kb/HT5701        http://support.apple.com/kb/HT5734

  • I just updated my latest java but the update is causing problems with some externale devices. So i would like to uninstall this latest java update and get back the previous one. That should solve to problems with my external device

    i just updated my latest java but the update is causing problems with some external devices. So i would like to uninstall this latest java update and get back the previous one. That should solve to problems with my external device.
    Is this possible and how do i do that?
    Anyone who responds thanks for that!
    Juko
    I am running
    Hardware Overview:
      Model Name:          Mac Pro
      Model Identifier:          MacPro1,1
      Processor Name:          Dual-Core Intel Xeon
      Processor Speed:          2,66 GHz
      Number of Processors:          2
      Total Number of Cores:          4
      L2 Cache (per Processor):          4 MB
      Memory:          6 GB
      Bus Speed:          1,33 GHz
      Boot ROM Version:          MP11.005D.B00
      SMC Version (system):          1.7f10
      Serial Number (system):          CK7XXXXXXGP
      Hardware UUID:          00000000-0000-1000-8000-0017F20F82F0
    System Software Overview:
      System Version:          Mac OS X 10.7.5 (11G63)
      Kernel Version:          Darwin 11.4.2
      Boot Volume:          Macintosh HD(2)
      Boot Mode:          Normal
      Computer Name:          Mac Pro van Juko de Vries
      User Name:          Juko de Vries (jukodevries)
      Secure Virtual Memory:          Enabled
      64-bit Kernel and Extensions:          No
      Time since boot:          11 days 20:39
    Message was edited by Host

    Java 6 you can't as Apple maintains it, and Java 7 you could if you uninstall it and Oracle provides the earlier version which they likely won't his last update fixed 37 remote exploits.
    Java broken some software here and there, all you'll have to do is wait for a update from the other parties.

Maybe you are looking for

  • How can I see my network drive from time capsule on windows vista pc?

    I connected my Time Capsule 2tb to Windows PC and do not see the Network Drive for TC. I can see TC on my wireless MacProBook, but cannot see TC drive on the pc. What can I do on the PC to find Time Capsule's drive? Thank you.

  • The verification of the server's certificate chain failed

    Hi All, Not sure this is the right forum for this but never mind. I am trying to get abap2GApps working and am having problems with the client certificates. I am getting the below error in ICM :- [Thr 06] Mon Jul 30 09:34:47 2012 [Thr 06] *** ERROR d

  • Prepaid Expenses

    Dear All, I have been given a project named Prepaid Expenses. In this I have been told to look for the Debit Line Items fom the table BSIS with some validations & restrictions. Then to divide that Debit amount by the number of months it has been paid

  • StackOverFlowError with Expression query

    We have an Expression query that will generate a query with 1500 to 2000 OR conditions based on some user input. The query does not return more than 2000 rows. We sometimes get a StackOverFlowError when the query is executed. We notice that the log h

  • Constant Errors - could this be the issue

    Morning all i have a near constant outage on On Demand TV - V04 i have - performed a line test and these are my results - Download speedachieved during the test was - 137 Kbps  For your connection, the acceptable range of speedsis 50-250 Kbps.  Addit