/ 温东霖的博客 / linux下为java工程创建桌面快捷方式生成可执行程序

linux下为java工程创建桌面快捷方式生成可执行程序

2014-06-02 posted in [项目总结]

做了一年的项目终于要结束了(我只能说研究所的效率实在是太低了),在收尾阶段,作为乙方,需要把做好的工程交付给甲方,可是我不希望他们修改后台的代码, 他们也不需要知道后台代码的实现细节,因此我需要做一个桌面快捷方式,让他们能直接运行我的工程就好。

首先是讲java工程导出为可执行jar包,具体步骤如下图:

1.在需要打包的工程上单击右键,并选中导出(export),如图:

image

2.在java目录中选中“可运行的jar文件”,并点击下一步,如图:

image

3.设置jar包的导出目标,并选择启动配置(main函数所在位置),点击完成,如图:

image

接下来运行一下这个jar包,看看是否导出成功。进入到jar包所在的目录,运行下面命令:

java -jar *.jar

发现读取不到配置文件(property文件),上网查了一下,原来当我们把工程生成jar包后,配置文件的路径也发生了变化,要想动态的加载我们的配置文件, 必须用Class类的getResourceAsStream()方法来获取,具体代码如下:

import java.io.*;  
public class Resource {  
	public void getProperty() throws IOException{  
		//返回读取指定资源的输入流  
		InputStream in=this.getClass().getResourceAsStream("config.property");   
		Properties props = new Properties();
		try {
			props.load(in);
			String value = props.getProperty (key);
			System.out.println("key:"+key+"value:"+value);
			return value;
		} catch (Exception e) {
			e.printStackTrace();
		}  
	}  
}  

其中property文件的默认根路径是在src下,这样我们就可以访问到我们的配置文件了。

正当我窃喜的时候我又发现了新的问题,通过这种方法我们可以正常的读取配置文件了,可是我们无法写入配置文件,这个问题查了很久,最终的结论是无法实现–不能 运行jar包时动态的写入配置文件。

这种方法行不通,那就得另辟蹊径了,经过一番查找后,突然发现我可以不将property文件打入jar文件,而在读取配置文件时通过绝对路径的方式读取,这样我们在运行jar包 时就可以随意的读写配置文件了,具体代码如下:

import java.io.*;  
public class Resource {  
	public void getProperty() throws IOException{  
		String filepath = "/home/wdl/config.property";
		//返回读取指定资源的输入流  
		InputStream in = new BufferedInputStream (new FileInputStream(filepath));
		Properties props = new Properties();
		try {
			props.load(in);
			String value = props.getProperty (key);
			System.out.println("key:"+key+"value:"+value);
			return value;
		} catch (Exception e) {
			e.printStackTrace();
		}  
	}  
}  

为什么没有提前想到这么简单的方法呢,我真是被自己笨哭了。

由于我现在还是通过命令行的方式运行的jar文件,而研究所的人不懂这些,他们想要的就是双击运行,所以最后一步就是生成桌面快捷方式让他们双击。

Linux的桌面环境下,快捷菜单实际上是一个.desktop后缀的文件,通过这个文件链接到执行程序。进入/usr/share/applications目录,创建一个以.desktop为后缀名的文件 比如

vi jiankong.desktop

然后在此文件中进行编辑,内容如下

[Desktop Entry]
Comment=xxx software(英文注释,可空)

Exec=java -jar /home/wdl/桌面/xxx.jar(执行程序或者脚本路径,必填)

GenericName=(可空)

Name= jiankong software(英文环境下显示的名称)

Terminal=false(必填false)

Type=Application(一般都是Application)

Categories=Application;(程序所属分类)

Icon=/home/wdl/桌面/1.png(快捷方式图标路径)

保存,退出(编辑此.desktop文件时需以root身份操作),然后双击运行此文件,便可以运行程序啦。

至此,大功告成。

分享到