Launching a URL in a Java Swing application - java

How do I launch a URL in the user's default browser, in code from a Java Swing application?
There is this Netbeans library, but the jar dont seem to contain the classes mentioned in the example.
And there seems to be a number of old bespoke examples around.
But are there any killer solutions?

If you're running on JDK 1.6, you java.awt.Desktop.
Desktop.getDesktop().browse(new java.net.URI("www.google.com"));
If running on an earlier JDK, I believe that you can download the JDIC library. Or hack something together by spawning processes.

To expand upon kdgregory's answer, the The Java Desktop API, available from Java 6, provides integration with the desktop with functionality such as launching default web browsers and mail clients.
Launching a web browser can be achieved by using the Desktop.browse method.
For example, launching http://stackoverflow.com can be acheived by the following:
Desktop.getDesktop().browse(new URI("http://stackoverflow.com"));
More information:
Using the Desktop API in Java SE 6
How to Integrate with the Desktop Class

You can look at BrowserLauncher, although the latest version of the JDK are trying to make that obsolete.

Related

Java browser that support applet

Is there's any java embedded web browser(free) that support applet running ?
I don't mind if its use some native libraries.
Currently ,I already tried javafx web view and DJnativeswing and they dont detect java(doesn't support applet).
Most of the modern browsers (Chrome v42+, Firefox 64 for Windows, Microsoft Edge, etc) have dropped support for NPAPI which is required for applets to run. Oracle is recommending that developers switch over to Java Web Start instead of using applet as the technology is fading. If you still need to use applets (eg. for school programming projects) you may need to uninstall your current browser(s) and install a legacy browser that still includes NPAPI.
Browser do not support applets nativly. That's because applets need a java runtime environment and an browser adapter to display the content in the browser. But if you install a jre it always will install an plugin into you browser(s) if not already present.

Chrome packaged app with a Java applet

Is it possible for a Chrome packaged app to contain a Java applet?
I'm attempting to integrate QZ-Print / jZebra into a packaged app, however the applet does not appear and JavaScript receives an error of applet / can't read method of undefined when attempting to call a function.
No, you cannot use any (NPAPI) plugin in a Chrome app.
The documentation lists several Disabled Web Features. Flash and Non-sandboxed plugins are both listed, so they cannot be embedded in a Chrome app. Flash -as a (sandboxed) PPAPI plugin- could be embedded inside a <webview> tag, but Java is a non-sandboxed NPAPI plugin, so it cannot be used in a <webview> tag.
And you cannot use Java applets within a legacy packaged app either, because Java does not support Chrome extensions. You might have more luck if you try to embed the Java applet from a http(s) site.
Note that both Java applets and legacy packaged apps are deprecated and going to be removed from Chrome in the future (announcement for Java plugins, announcement for packaged apps), so you should try to look for alternatives such as native messaging.
It will be an ad-hoc solution, but you can set "always allow" manually in chrome://plugins

Using JavaFX without "installing" it

I would like to use JavaFX's web browser in an application I am developing for a client. The problem is my client's server runs on a JDK 6 environment and it has a lot of burocracy and paper to ask him to either update Java SDK or to install JavaFX SDK as the Oracle's guide suggests. So I would like to know if there's a way to import JavaFX JAR's into my project instead of having to install it. Thanks a lot.

Detect lowest Java version supported

I'm working on a little Java app and I'm currently putting the installer together. This checks for perquisites, such as Java being installed, and prompts the user to download anything that's required.
I need to set a requirement for the minimum Java version I support (I'm building with 7). Is there a simple way I can detect what this would be? So if I'm using any classes etc. not available in earlier versions. BTW I'm using IntelliJ.
I'm not sure if the entire 'system tray' complicates things, but..
For deploying Java desktop apps., the best option is usually to install the app. using Java Web Start. JWS works on Windows, OS X & *nix.
The best way to deploy a JWS app. or applet is to use the Deployment Toolkit Script. (That script will do the 'version checking').

What is "java web start" used for?

I was reading about java web start from wiki. Can someone please tell me
What is it used for?
A practical application of it; to make its use clearer.
Do other languages like C++ / C# have
anything similar?
Thanks,
Roger
Java Web Start is kind of like a successor to applets - it allows Java programs to be run from your browser (though unlike applets, they don't run within the browser). For a practical example, see the TopCoder Arena.
http://www.topcoder.com/contest/arena/ContestAppletProd.jnlp
Here, Java Network Launching Protocol (JNLP) is the protocol that defines how a Web Start application should be run (analogous to HTML telling a browser how a page should be rendered).
See the Oracle tutorials:
Lesson: Web Start
Deploying a Java Web Start Application
Java Network Launch Protocol
Java Web Start software provides the
power to launch full-featured
applications with a single click.
Users can download and launch
applications, such as a complete
spreadsheet program or an Internet
chat client, without going through
lengthy installation procedures.
With Java Web Start software, users
can launch a Java application by
clicking a link in a web page. The
link points to a Java Network Launch
Protocol (JNLP) file, which instructs
Java Web Start software to download,
cache, and run the application.
I'm quoting the Java Tutorial lesson on WebStart
For those of you who work with .Net something like Java Webstart is ClickOnce technology.
Java Web Start is used to write sandboxed desktop applications similar to Java Applets. Like applets they can be launched from a web browser, but they run in their own window - not inside the browser.
It runs just like a normal application, but started from clicking a web page instead of having to download and run an installer. An advantage is that it's very easy to get people who are afraid of all the security warnings to try your application. Another advantage is that you don't need to keep the browser open while you run your application. You can even install a shortcut to your application onto the user's desktop so they don't need to touch the browser at all once they have run it the first time.
The .NET equivalent is Click Once.
What is it used for?
To roll out and keep updated an application to clients. Clients need "only" a Java Runtime installed. This may be more interesting to read.
Java webstart is used to deploy/install Java applications over the network.
The alternative is to send an application (MyApp.jar) to the users who will run that directly. But if it is out-of-date, they could have collisions when the application talks to the server (for example, or other such badness).
It also allows you to package all of the required libraries. This is a HUGE benefit.
http://java.sun.com/javase/technologies/desktop/javawebstart/index.jsp
As mentioned above, it's a technology to allow you to 'push' an always up to date Java app to users. It's not often used on a consumer level, but has some adoption in a corporate atmosphere.
It's best used in somewhat controlled environments, and is especially useful to push a specific version of client software to control a server.
Do other languages like C++ / C# have anything similar?
Yes. Microsoft provides something called ClickOnce that provides a web-based installer.
Today i am looking for the same example about the Java web start...
I thing this link will work for you,i have used as a beginner.
Click Here
As mention With Java Web Start software, users can launch a Java application by clicking a link in a web page. The link points to a Java Network Launch Protocol (JNLP) file, which instructs Java Web Start software to download, cache, and run the application.
We had a project, a plugin for Protégé, which is an ontology editor.
Installing the plugin isn't that hard, but to give the user a quick impression how the plugin worked, we supplied a Java Web Start application on our site. The page is still active, the plugin may have some rough edges, since it hasn't been updated for a while ... http://dac.icore.at/one/solutions.
I'm currently not aware of similar products for C/++/#.
Java web start is the 0-install solution in the java world.
An application built to use Java web start (JWS) will be available as a link in a web site. This site will have the .jnlp extension.
When a user clicks this link (and clicks the "execute" button of his browser) , the javaws.exe runtime will be launched. This executable will download the application and dependencies (libraries, images, and so on) and launch the application using the provided main-class of the .jnlp file).
An extensive reference of JNLP content can be found at http://lopica.sourceforge.net/ref.html
Examples of Java web start applications can be found at Swing sightings.
Notice that, depending upon the chosen configuration, these applciations can also be automatically installed in start menu.

Categories

Resources