Java程序打开浏览器和文件夹
(1)打开网址
//启用系统默认浏览器来打开网址。
try {
URI uri = new URI("file:///"+fileFullPath.replaceAll("\\\\", "/"));
Desktop.getDesktop().browse(uri);
} catch (URISyntaxException e2) {
e2.printStackTrace();
// GUIUtil23.errorDialog(e2);
ToastMessage.toast(e2.getMessage(),3000,Color.red);
} catch (IOException e2) {
e2.printStackTrace();
// GUIUtil23.errorDialog(e2);
ToastMessage.toast(e2.getMessage(),3000,Color.red);
}
(2)打开文件所在文件夹
String pathStr=this.tf.getText();
if(!ValueWidget.isNullOrEmpty(pathStr)){
FileUtils.open_directory(SystemHWUtil.getParentDir(pathStr));
}
FileUtils.open_directory实现体为:
/***
*
* @param folder
* : directory
*/
public static void open_directory(Object folderObj) {
if (ValueWidget.isNullOrEmpty(folderObj)) {
return;
}
File file = null;
/*if (folderObj instanceof JTextField) {
JTextField tf = (JTextField) folderObj;
file = new File(tf.getText());
} else */if (folderObj instanceof String) {
file = new File((String) folderObj);
} else {
file = (File) folderObj;
}
if (!file.exists()) {
return;
}
Runtime runtime = null;
try {
runtime = Runtime.getRuntime();
if (SystemHWUtil.isWindows) {
runtime.exec("cmd /c start explorer " + file.getAbsolutePath());
} else {
runtime.exec("nautilus " + file.getAbsolutePath());
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (null != runtime) {
runtime.runFinalization();
}
}
}
(3)使用notepad打开txt文件
final String pathStr=this.tf.getText();
if(!ValueWidget.isNullOrEmpty(pathStr)){
new Thread(new Runnable() {
@Override
public void run() {
String result;
try {
result = CMDUtil.execute(new String[]{"cmd", "/c", "notepad", pathStr}, null, null);
System.out.println(result);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}).start();
}
CMDUtil.execute实现如下:
/***
*
* @param command
* @param cmdFolder : 命令的路径
* @param charset
* @return
* @throws IOException
*/
public static String execute(String[]command,String cmdFolder,String charset) throws IOException{
BufferedReader reader = null;
Process p = null;
String errorInputStr = null;
try
{
// String commandFolder=;
if(ValueWidget.isNullOrEmpty(charset)){
charset=SystemHWUtil.CURR_ENCODING;
}
if(ValueWidget.isNullOrEmpty(cmdFolder)){
p = Runtime.getRuntime().exec(command);
}else{
File cmdFolder2=null;
if(!ValueWidget.isNullOrEmpty(cmdFolder)){
cmdFolder2=new File(cmdFolder/*命令的所在目录*/);
p = Runtime.getRuntime().exec(command, null,cmdFolder2/*命令的路径*/);//)
}else{
p = Runtime.getRuntime().exec(command, null);//)
}
}
reader = new BufferedReader(new InputStreamReader(p
.getInputStream(),charset));
errorInputStr=FileUtils.getFullContent4(p.getErrorStream(),charset);
if(!ValueWidget.isNullOrEmpty(errorInputStr)){
System.out.println("error:"+errorInputStr);
}
StringBuilder sb = new StringBuilder();
String readedLine = null;
try
{
while ((readedLine = reader.readLine()) != null)
{
sb.append(readedLine);
sb.append("\r\n");
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
reader.close();
p.destroy();
}
catch (IOException e)
{
e.printStackTrace();
}
}
String content = sb.toString();
System.out.println(content);
}
catch (IOException e)
{
e.printStackTrace();
throw e;
}
return errorInputStr;
}