app/src/main/java/org/sakaiproject/nakamura/app/LaunchNakamura.java
private void launchButtonActionPerformed(java.awt.event.ActionEvent evt) {
    // Launch Nakamura
    if (runStatus == APP_NOT_RUNNING) {
      System.setSecurityManager(null);
      try {
        NakamuraMain.main(savedArgs);

        // Update label
        statusLabel.setText("Nakamura is starting...");

        // Notify the user
        JOptionPane.showMessageDialog(this,
            "Nakamura has been started.\nPlease allow 30-60 seconds for it to be ready.",
            "Information", JOptionPane.INFORMATION_MESSAGE);

        runStatus = APP_RUNNING;
        isStartupFinished();
      } catch (IOException e) {
        statusLabel.setText("Nakamura is startup failed " + e.getMessage());
      }
    } else {
      // Can't start it again...
      // custom title, warning icon
      JOptionPane.showMessageDialog(this, "Nakamura is already running.", "Warning",
          JOptionPane.WARNING_MESSAGE);
    }
  }
private void launchButtonActionPerformed(java.awt.event.ActionEvent evt) {
    // Launch Nakamura
    if (runStatus == APP_NOT_RUNNING) {
      System.setSecurityManager(null);
      try {
        NakamuraMain.main(savedArgs);

        // Update label
        statusLabel.setText("Nakamura is starting...");

        // Notify the user
        JOptionPane.showMessageDialog(this,
            "Nakamura has been started.\nPlease allow 30-60 seconds for it to be ready.",
            "Information", JOptionPane.INFORMATION_MESSAGE);

        runStatus = APP_RUNNING;
        isStartupFinished();
      } catch (IOException e) {
        statusLabel.setText("Nakamura is startup failed " + e.getMessage());
      }
    } else {
      // Can't start it again...
      // custom title, warning icon
      JOptionPane.showMessageDialog(this, "Nakamura is already running.", "Warning",
          JOptionPane.WARNING_MESSAGE);
    }
  }
This is the launch button action method. This method launches the Apache Sling
bootloader and informs the user to wait before accessing it in a browser.

@param evt
The details of the Action event.
@throws IOException