有些时候,需要将java程序双击就可以运行的jar文件,如果用手工打包会比较痛苦(尤其是包含有第三方的jar时),这里介绍一个快捷的方式:用FatJar实现。
1、下载、配置。
fatjar是Eclipse的一个插件,下载后配置到eclipse中即可。
下载地址:http://downloads.sourceforge.net/fjep/net.sf.fjep.fatjar_0.0.27.zip?modtime=1195824818&big_mirror=0
在线安装地址:http://kurucz-grafika.de/fatjar
配置好重新启动eclipse,在“首选项”可发现“Fat Jar Prefreence”,表示安装成功。
2、生成可运行jar:
选中一个项目,右键选择“build fat jar”探出对话框,"jar-name"、“Main-Class”必须填写。
完成后“下一步”,
选择需要到处的资源(一般全选择)
选好后,点击“完成”生成jar文件。
用rar打开文件可以看到第三方的库也一并打入了包中。
ok,现在运行“java -jar xxx.jar”可以看到结果了。
3、在windows、linux下执行
(假定我们打包后的文件名称是resourceMonitor.jar,主类是job.StartUp,并且需要一个sigar-x86-winnt.dll库支持)
a、在windows下:
新建runResourceMonitor.bat文件,和resourceMonitor.jar同目录,内容如下:
@echo off
echo 正在执行,请稍等......
@rem start "Ecode App Server Monitor v1.0" java -jar resourceMonitor.jar
start "Ecode App Server Monitor v1.0" java -classpath .\resourceMonitor.jar;.\dll\sigar-x86-winnt.dll job.StartUp
echo 执行完成!
@rem pause
拷贝sigar-x86-winnt.dll,和resourceMonitor.jar同目录。
最后的目录结构:
双击“runResourceMonitor.bat”即可启动服务。
b、在linux下运行
linux和windows有所不同,主要表现在对lib库位置的读取上。win下直接放在jar同目录下即可自动找到,但是linux下需要指定LD_LIBRARY_PATH的位置。关于LD_LIBRARY_PATH可以看本文后面的知识点。
方法是:
在resourceMonitor.jar所在目录下创建run.sh,内容如下:(nohup是后台执行命令,关于nohup可以看本文后面的知识点。)
export LD_LIBRARY_PATH=./so:$LD_LIBRARY_PATH
nohup java -cp resourceMonitor.jar job.StartUp &
然后在当前目录下创建so文件夹,并拷贝所需动态链接文件“libsigar-x86-linux.so”到该目录。
最后的目录结构:
现在进入对应目录执行run.sh 即可。注意chmod一下。
ok,大功告成。
===================linux小知识=======================
关于LD_LIBRARY_PATH的小知识:
定义
Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。(该路径在默认路径之前查找)
移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,这时可以将这些目录设置到LD_LIBRARY_PATH中。
编辑本段示例
当执行函数动态链接.so时,如果此文件不在缺省目录下‘/usr/local/lib’ and ‘/usr/lib’.
那么就需要指定环境变量LD_LIBRARY_PATH
假如现在需要在已有的环境变量上添加新的路径名,则采用如下方式:
LD_LIBRARY_PATH=NEWDIRS:$LD_LIBRARY_PATH.(newdirs是新的路径串)
(注:GNU系统可以自动添加在 /etc/ld.so.conf文件中来实现环境变量的设置)
关于nohup:
nohup
nohup 命令
用途:LINUX命令用法,不挂断地运行命令。
语法:nohup Command [ Arg ... ] [ & ]
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。
退出状态:该命令返回下列出口值:
126 可以查找但不能调用 Command 参数指定的命令。
127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。
否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。
nohup命令及其输出文件
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。
该命令的一般形式为:nohup command &
使用nohup命令提交作业
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为 nohup.out的文件中,除非另外指定了输出文件:
nohup command > myout.file 2>&1 &
在上面的例子中,输出被重定向到myout.file文件中。
使用 jobs 查看任务。
使用 fg %n 关闭。
另外有两个常用的ftp工具ncftpget和ncftpput,可以实现后台的ftp上传和下载,这样我就可以利用这些命令在后台上传和下载文件了。
- 大小: 41.4 KB
- 大小: 37.8 KB
- 大小: 8.6 KB
- 大小: 27.6 KB
- 大小: 17.7 KB
- 大小: 12.4 KB
分享到:
相关推荐
标题“用Fat Jar Eclipse Plug-In打包可执行jar文件”指的是使用Eclipse集成开发环境中的一个插件,Fat Jar,来创建一个可以直接运行的Java应用程序jar文件。这种类型的jar文件被称为"fat jar"或"uber jar",因为它...
结合使用Fat Jar Eclipse Plug-In,你可以轻松地将Java应用程序打包成一个包含所有依赖且具有原生外观的可执行文件,非常适合分发给最终用户。 综上所述,Fat Jar Eclipse Plug-In不仅简化了Java项目的打包过程,还提供...
在Java开发过程中,将项目打包成可执行的JAR文件是一项常见的任务,这使得应用程序能够独立于开发环境运行。然而,Eclipse IDE在默认情况下,对于包含第三方库的项目打包时可能会遇到问题,因为它并不自动将这些依赖...
在Java开发过程中,将项目打包成可执行的JAR(Java Archive)文件是常见的需求,以便于分发和运行。MyEclipse作为一款强大的Java集成开发环境,提供了丰富的功能,其中包括了生成JAR包的工具。然而,对于包含依赖库...
在 Eclipse(非 MyEclipse)环境下,可以利用自带工具或第三方插件来将 Java 应用程序打包成可执行的 jar 文件。 ##### 1.1 Eclipse 自带工具打包 使用 Eclipse 自带工具进行 jar 包的打包步骤相对简单,适用于...
`Fat_Jar_Eclipse_Plug-In教程.pdf`很可能是详细指导如何在Eclipse中安装和使用`fat_jar`插件的文档,内容可能包括: 1. 插件安装:通常涉及访问Eclipse Marketplace,搜索`fat_jar`插件,然后按照指示进行安装。 2....
总的来说,fatjar是一个强大的工具,能够简化Java项目的打包流程,使得开发者可以快速地创建包含所有依赖的单一可执行JAR,这对于部署和分享Java应用程序非常有帮助。同时,其易于安装和集成的特点也使得它成为...
Fat Jar Eclipse Plug-In是一个可以将Eclipse Java Project的所有资源打包进一个可执行jar文件的小工具, 可以方便的完成各种打包任务,我们经常会来打jar包,但是eclipse自带的打包jar似乎不太够用, Fat Jar是...
"Maven-shade-plugin"是Maven生态系统中的一个强大插件,它的主要作用是将所有依赖及其相关的资源打包成一个单一的可执行jar,这个过程被称为"fat jar"或"uber jar"。这个过程不仅可以解决jar包冲突,还可以通过...