1. 程式人生 > >java建立桌面快捷方式

java建立桌面快捷方式

只要訪問本頁面就可以自動在桌面建立快捷方式,當然,其他路徑也可以。如果想點選按鈕生成快捷方式,把按鈕的連結設定成本頁面即可!
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
<%@page import="java.io.*"%>  
<%@page import="javax.swing.filechooser.*"%>  
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>  
</head>  
<body>  
 <%  
    String templateContent = "[InternetShortcut]" + "\n" + "URL=http://admin.weiscloud.com/";     
    String realfilename = "XXXX" + ".url";     
    FileSystemView fsv = FileSystemView.getFileSystemView();      
    String upurl = fsv.getHomeDirectory().toString();     
    String filename = upurl + "/" + realfilename;     
    File myfile = new File(filename);    
	 System.out.println(12);
    if(!myfile.exists()){  
    	 System.out.print(11);
        FileOutputStream fileoutputstream = new FileOutputStream(filename);//建立檔案輸出流      
        byte tag_bytes[] = templateContent.getBytes();     
        fileoutputstream.write(tag_bytes);     
        fileoutputstream.close();     
    }  
    try {     
        File file = new File(upurl, realfilename);     
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));     
        byte[] buffer = new byte[111000];     
        realfilename = java.net.URLEncoder.encode(realfilename,     
        "UTF-8");     
        response.reset();     
        response.setCharacterEncoding("UTF-8");     
        response.setContentType("application/x-download");//不同型別的檔案對應不同的MIME型別     
        response.setHeader("Content-Disposition",     
        "attachment; filename=" + realfilename);     
        OutputStream os = response.getOutputStream();     
        while (bis.read(buffer) > 0) {     
            os.write(buffer);     
        }     
        bis.close();     
        os.close();     
        out.clear();     
        out=pageContext.pushBody();     
    } catch (Exception e) {     
        e.printStackTrace();     
    }   
  
%>  
  
</body>  
</html>  </span>
2第二種方式是:下載jshortcut-0_4.jar這種方式在伺服器上是有的問題的
	@RequestMapping("/deskIco")
	@ResponseBody
    public ResponseBean deskIco(HttpServletRequest request,String ico) {
		ResponseBean rb=new ResponseBean();
		try{
			FileSystemView fsv = FileSystemView.getFileSystemView();
			String writeFolderPath = fsv.getHomeDirectory().toString()+"\\";    //這便是讀取桌面路徑的方法了
			String jarFileName = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe";//建立快捷方式後滑鼠放到上面的時候現實的檔案所存位置 
			// create lnk file 
			JShellLink link = new JShellLink(); 
			link.setFolder(writeFolderPath); //建立的快捷方式所存在的位置,路徑要真實路徑,放到快速啟動欄裡面
			link.setName("XXX後臺"); //快捷方式的名稱
			String savefile=PathUtil.getWEB_ROOT(request)+PathUtil.PATH_SEPARATOR+"images"+PathUtil.PATH_SEPARATOR+"ico"+PathUtil.PATH_SEPARATOR+ico+".ico";
			System.out.print(savefile);
			link.setIconLocation(savefile);//圖片位置
			link.setPath(jarFileName); 
			link.setArguments("http://test2.weiscloud.com/");//設定執行引數
			link.save(); 
			link.load();
			rb.setMessage("桌面圖示建立成功");
		}catch(Exception e){
			e.printStackTrace();
			rb.setErrorMessageByKey("SERVICE_EOR");
		}
        return rb;
    }