import java.lang.Runtime;
import java.io.IOException;
import java.awt.FlowLayout;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JPanel;
public class CreatePrinter {
/**
* The flag to display a url.
*/
private final static String UNIX_FLAG = "-remote openURL";
/**
* The default browser under unix.
*/
private final static String UNIX_PATH = "netscape";
/**
* The flag to display a url.
*/
private final static String WIN_FLAG = "url.dll,FileProtocolHandler";
/**
* Used to identify the windows platform.
*/
private final static String WIN_ID = "Windows";
/**
* The default system browser under windows.
*/
private final static String WIN_PATH = "rundll32";
public static boolean isWindowsPlatform(){
String os = System.getProperty( "os.name" );
if( os != null && os.startsWith( WIN_ID ) )
return true;
else
return false;
}
public static void showDocument( String url ){
if( url == null )
return;
boolean windows = isWindowsPlatform();
String cmd = null;
try{
if( windows ){
// cmd = 'rundll32 url.dll,FileProtocolHandler http://...'
cmd = WIN_PATH + " " + WIN_FLAG + " " + url;
Process p = Runtime.getRuntime().exec( cmd );
}
else{
// Under Unix, Netscape has to be running for the "-remote"
// command to work. So, we try sending the command and
// check for an exit value. If the exit command is 0,
// it worked, otherwise we need to start the browser.
// cmd = 'netscape -remote openURL(http://www.javaworld.com)'
cmd = UNIX_PATH + " " + UNIX_FLAG + "(" + url + ")";
Process p = Runtime.getRuntime().exec( cmd );
try{
// wait for exit code -- if it's 0, command worked,
// otherwise we need to start the browser up.
int exitCode = p.waitFor();
if( exitCode != 0 ){
// Command failed, start up the browser
// cmd = 'netscape http://www.javaworld.com'
cmd = UNIX_PATH + " " + url;
p = Runtime.getRuntime().exec( cmd );
}
}
catch( InterruptedException e)
{
System.out.println("*** failed to bring up browser using command '" + cmd + "': " +e.toString() );
}
}
}
catch( IOException io)
{
// couldn't exec browser
System.out.println( "*** failed to bring up browser using command '" + cmd + "': " + io.toString() );
}
}
public static void main(String args[]){
showDocument("www.sina.com.cn");
}
}