Create shortcut of page on a button click in Oracle ADF using JShortcut library (For windows)

Sharing is Caring

This post is about a small trick to create shortcut of page from ADF application
Actually, this type of requirement doesn’t come in picture when you are working in the web application, for web application bookmarks replaces the desktop shortcut
Still, if you want to do this then you can follow the approach mentioned in this post

Creating shortcut programmatically requires access of operating system but you need not worry about that
There is a java library to do this for you – JShortcut
Download jar files from here.

1. Now the first step is to create a fusion web application and add this jar to the viewController project

2. Create a page (independent runnable like jspx or JSF, not fragments) and drop a button in that
3. Create a managed bean to handle button’s action
Here we will make use of JShellLink class of this library

See what docs say about this –

Provide access to shortcuts (shell links) from Java. The native library (jshortcut.dll) is loaded when JShellLink is first loaded. By default, JShellLink first looks for the native library in the PATH, using System.loadLibrary. If the native library is not found in the PATH, JShellLink then looks through each directory in the CLASSPATH (as determined by the value of the system property java.class.path). If an entry in the CLASSPATH is a jar file, then JShellLink looks for the native library in the directory containing that jar file. The application can override this behavior and force JShellLink to look for the native library in a specific directory by setting the system property JSHORTCUT_HOME to point to that directory. This property must be set before the JShellLink class is loaded. This makes it possible to use this library from a self-extracting jar file. 

4. Get the URL of the current page
How to get URL of the current page in ADF Application?
 (See button action listener code for this )
5. Check code written in managed bean-

import javax.faces.context.FacesContext; 
import javax.faces.event.ActionEvent;
import javax.servlet.http.HttpServletRequest;
import net.jimmc.jshortcut.JShellLink;
import oracle.adf.controller.ControllerContext;

JShellLink link;
String filePath;

/**Button action listener to create shortcurt of current page on desktop
 * @param actionEvent
public void createSortcutonDpAction(ActionEvent actionEvent) {
try {
//Get url of current ViewPort
String viewId = ControllerContext.getInstance().getCurrentViewPort().getViewId();
String viewUrl = ControllerContext.getInstance().getGlobalViewActivityURL(viewId);

//Get Server Name and Port
FacesContext fctx = FacesContext.getCurrentInstance();
HttpServletRequest hsrequest = (HttpServletRequest) fctx.getExternalContext().getRequest();

String serverName = hsrequest.getServerName();
int serverPort = hsrequest.getServerPort();

String runnableUrl = "http://" + serverName + ":" + serverPort + viewUrl;

//Create Object of shortcurt link
link = new JShellLink();
filePath = JShellLink.getDirectory("") + runnableUrl;
//Set Where you want to create shortcut
//Set shortcut file name
link.setName("Programmatically Created Shortcut");
//Use ico file to use as shortcut icon

} catch (Exception ex) {


6.  All done:), run and check application
Click on the button and check on desktop



Create shortcut of page

The same code can be used to create a shortcut from pure java application
Cheers 🙂 Happy Learning


Related Posts

0 thoughts on “Create shortcut of page on a button click in Oracle ADF using JShortcut library (For windows)”

Leave a Reply

Your email address will not be published. Required fields are marked *