Question
I have an application written in Java. It is designed to run on a Linux box standalone. I am trying to spawn a new firefox window. However, firefox never opens. It always has a shell exit code of 1. I can run this same code with gnome-terminal and it opens fine.
Background
So, here is its initialization process:
- Start X ‘Xorg :1 -br -terminate -dpms -quiet vt7’
- Start Window Manager ‘metacity –display=:1 –replace’
- Configure resources ‘xrdb -merge /etc/X11/Xresources’
- Become a daemon and disconnect from controlling terminal
Once the program is up an running, there is a button the user can click that should spawn a firefox window. Here is my code to do that. Remember X is running on display :1.
Code
public boolean openBrowser() { try { Process oProc = Runtime.getRuntime().exec( '/usr/bin/firefox --display=:1' ); int bExit = oProc.waitFor(); // This is always 1 for some reason return true; } catch ( Exception e ) { oLogger.log( Level.WARNING, 'Open Browser', e ); return false; } }
after having read the various answers and various comments(from questioner), here’s what I would do
1) try this java approach http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ProcessBuilder.html
see more about this class:
http://java.sun.com/developer/JDCTechTips/2005/tt0727.html#2
http://www.javabeat.net/tips/8-using-the-new-process-builder-class.html
2) try doing this(launching firefox) from C/C++/ruby/python and see if that is succeeding.
3) if all else fails, I would launch a shell program and that shell program would launch firefox!!