把java做成绿色软件
来源:互联网 发布:软件外包上市公司 编辑:程序博客网 时间:2024/04/29 19:52
最近在忙一个java后台程序,开始的项目是做成一个后台程序,在系统启动的时候运行改程序。
老大希望做成windows服务,百度了一下,使用wrapper commonty版本完成了jar到windows服务封装。
见另一篇博客:http://blog.csdn.net/zhangxu365/article/details/8004040 【使用 wrapper 把jar打包成windows服务】
封装成服务其实已经是绿色的,但是需要注意的是文件中使用的路径,尽量使用相对路径,需要使用绝对路径的也有办法
见 http://blog.csdn.net/zhangxu365/article/details/8021504 java 获取当期路径。
程序还有一个客户端,启动采用程序动态生成BAT,因为BAT的内容是写文件写进去的,所以可以控制bat使用的路径。
java 动态执行该bat 就能完成相关操作。附上生成BAT,执行bat到删除bat的代码:
软件包内包含jre ,wrapper 的conf 可以设置jre路径,程序打包成jar 的时候也可以设置jre路径,使用免安装的jre也就不是难题了
/**
* 生成桌面右键菜单
*/
private void generateScreenMenu(){
//生成创建桌面右键的Bat文件
String creatMenuFile = FileHandle.creatScreenMenuBatFile();
try{
Process child = Runtime.getRuntime().exec(creatMenuFile);
child.waitFor();
FileHandle.deleteFile(creatMenuFile);
}catch(Exception e){
System.err.println(e.getMessage());
}
}
/**
* @param fileName---要生成的文件名
* @param oneLineContent---文件的第一行内容
* @param secondLineContent---文件的第二行内容
*
* 函数功能:生成制定文件名和文件内容的文件
*
*/
public static String creatScreenMenuBatFile() {
String tmpFullPath = "";
try {
tmpFullPath = StartPcService.INSTALLPATH+ "\\creatmenu.BAT";
File file = new File( tmpFullPath );
//如果文件已经存在则先删除
if(file.exists()&&file.isFile()) {
if( file.delete()) {
System.out.println("删除文件:"+tmpFullPath);
}
}
file.createNewFile();
String startPCContorPalyerPath = StartPcService.INSTALLPATH + "\\lib\\startPcControlPlayer.bat";
System.out.println(startPCContorPalyerPath);
if(StartPcService.OSNAME.equals("Windows 7")) {
String line1Content = "@echo off";
String line2Content = "reg add HKEY_CLASSES_ROOT\\Directory\\Background\\shell\\发送到DMR";
String line3Content = "reg add HKEY_CLASSES_ROOT\\Directory\\Background\\shell\\发送到DMR\\command /ve /t reg_sz /d \"" + startPCContorPalyerPath + "\" /f";
FileWriter writer = new FileWriter(tmpFullPath, true);
writer.write(line1Content+ "\r\n");
writer.write(line2Content + "\r\n");
writer.write(line3Content + "\r\n");
writer.close();
}else {
String line1Content = "@echo off";
String line2Content = "reg add HKEY_CLASSES_ROOT\\CLSID\\{00000000-0000-0000-0000-000000000003}";
String line3Content = "reg add HKEY_CLASSES_ROOT\\CLSID\\{00000000-0000-0000-0000-000000000003}\\InProcServer32";
String line4Content = "reg add HKEY_CLASSES_ROOT\\CLSID\\{00000000-0000-0000-0000-000000000003}\\InProcServer32 /ve /t reg_expand_sz /d %SystemRoot%\\system32\\shdocvw.dll /f";
String line5Content = "reg add HKEY_CLASSES_ROOT\\CLSID\\{00000000-0000-0000-0000-000000000003}\\Instance";
String line6Content = "reg add HKEY_CLASSES_ROOT\\CLSID\\{00000000-0000-0000-0000-000000000003}\\Instance /v CLSID /t reg_sz /d {3f454f0e-42ae-4d7c-8ea3-328250d6e272} /f";
String line7Content = "reg add HKEY_CLASSES_ROOT\\CLSID\\{00000000-0000-0000-0000-000000000003}\\Instance\\InitPropertyBag";
String line8Content = "reg add HKEY_CLASSES_ROOT\\CLSID\\{00000000-0000-0000-0000-000000000003}\\Instance\\InitPropertyBag /v Param1 /t reg_sz /d \""+ startPCContorPalyerPath + "\" /f";
String line9Content = "reg add HKEY_CLASSES_ROOT\\CLSID\\{00000000-0000-0000-0000-000000000003}\\Instance\\InitPropertyBag /v command /t reg_sz /d 发送到DMR /f";
String line10Content = "reg add HKEY_CLASSES_ROOT\\CLSID\\{00000000-0000-0000-0000-000000000003}\\Instance\\InitPropertyBag /v method /t reg_sz /d ShellExecute /f";
String line11Content = "reg add HKEY_CLASSES_ROOT\\CLSID\\{00000000-0000-0000-0000-000000000003}\\Instance\\InitPropertyBag /v CLSID /t reg_sz /d {13709620-C279-11CE-A49E-444553540000} /f";
String line12Content = "reg add HKEY_CLASSES_ROOT\\Directory\\Background\\shellex\\ContextMenuHandlers\\{00000000-0000-0000-0000-000000000003}";
String line13Content = "CLS";
String line14Content = "color 2e";
writer = new FileWriter(tmpFullPath, true);
writer.write(line1Content+ "\r\n");
writer.write(line2Content + "\r\n");
writer.write(line3Content + "\r\n");
writer.write(line4Content + "\r\n");
writer.write(line5Content+ "\r\n");
writer.write(line6Content + "\r\n");
writer.write(line7Content + "\r\n");
writer.write(line8Content + "\r\n");
writer.write(line9Content+ "\r\n");
writer.write(line10Content + "\r\n");
writer.write(line11Content + "\r\n");
writer.write(line12Content + "\r\n");
writer.write(line13Content + "\r\n");
writer.write(line14Content + "\r\n");
writer.close();
}
System.out.println("成功创建文件:"+ tmpFullPath);
} catch (Exception e) {
// TODO Auto-generated catch block
tmpFullPath = "";
e.printStackTrace();
}
return tmpFullPath;
}
- 把java做成绿色软件
- 利用JAVA Service Wrapper把JAVA程序做成windows服务
- 可以把普通的Java程序做成真正的exe
- 使用java service wrapper把windows flume做成服务
- 如何把JAVA程序做成Windows服务,并开机运行
- 把PC做成CEPC
- 把uTorrent做成绿色版
- 把图标做成字体
- 绿色软件
- 绿色软件
- java注册码生成,制作绿色软件
- 把U盘做成系统盘
- 把C++类做成dll
- 把项目做成jar包
- 把exe做成windows服务
- 把Tomcat做成系统服务
- 据说把游戏王做成手机java客户端是可行的…
- java 在 Cookei中,去用户id,把用户id做成一个共享数据
- ret指令
- 移动平台处理器(不断更新中)
- 安装libpng提示#configure: error: zlib not installed
- 有关Oracle时间日期的操作手册
- TNS分析(修改版)
- 把java做成绿色软件
- S.O.L.I.D.类设计原则
- 【Android学习系列】Android中的线程同步问题
- Velocity的基本用法
- SQL Server查询数据性能
- 摘自一朋友姐们的自述 ... 描述的很形象
- 系统集成项目管理工程师笔记(10) 项目质量管理
- Visual Studio 2008 / VS2008 (团队开发版 Team) 在项目启动与调试结束时的卡死/假死/闪烁现象的解决方法
- SAP ABAP中读取项目文本的方法