Linux/OS X下将Jar包转换成可直接执行文件(不用java -jar)

在github上发现了这个脚本stub.sh

#!/bin/sh
MYSELF=`which "$0" 2>/dev/null`
[ $? -gt 0 -a -f "$0" ] && MYSELF="./$0"
java=java
if test -n "$JAVA_HOME"; then
    java="$JAVA_HOME/bin/java"
fi
exec "$java" $java_args -jar $MYSELF "[email protected]"
exit 1

比如你有一个可以通过java -jar执行的JAR包app.jar,只需要执行:

cat stub.sh app.jar > app.run && chmod +x app.run

然后就可以直接

./app.run

运行你的Java程序了。如果要添加VM参数,可以在脚本的第一行加上

java_args="-Xmx20m"

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 01:39:15

Linux/OS X下将Jar包转换成可直接执行文件(不用java -jar)的相关文章

Jar包转成Dll的方式(带嵌套的jar也能做) (转)

研究很好几天,终于成功了.因为写了一个Java的项目,现在要求要改写成C#版本的.但是其中用到了svnkit,svnkit是java平台的.改写成C#的话,要使用SharpSVN,但是SharpSVN的API文档真的很不专业.看来看去还是svnkit比较好.所以打算将一些操作(上传,下载,删除,移动,检索树)写好之后,转成dll.于是开始了研究. 首先遇到的问题是:jar包之间有依赖的话,转成dll.在运行过程中会出现找不到类的错误.最终找到了解决办法:有两种办法. 1.使用fatjar将他们统

windows下用idea编写wordcount单词计数项目并打jar包上传到hadoop执行

windows下用idea编写wordcount单词计数项目并打jar包上传到hadoop执行 参考 https://blog.csdn.net/weixin_42370346/article/details/88688693 1.最后一步运行jar包时报错 原因:未指出主类名 解决方法:hadoop jar /home/wxx/WordCount.jar com.hadoop.project.WordcountMain /user/hadoop/input/file.txt /user/had

使用Java Service Wrapper将jar包安装成Windows服务

在windows上运行jar包,需要在工作目录下使用命令行运行jar包,这样会出现一个命令行窗口.而且这个命令行窗口有可能会不小心被关闭,且服务器启动后需要人为去点击开启. 对于有些服务性的程序来说,我们需要将其部署为windows服务,在系统启动的时候自动启动. 前面我使用了yajsw来进行,请参考我的博文:http://www.cnblogs.com/kxxx/p/6744309.html 但本次在另外一台服务器上进行处理时,安装了服务之后不能打开,服务每次都报找不到指定文件的错误,试了很久

Jar包读取内部和外部的文件

jar包中的类如何读取包内和包外的配置文件 最近将代码打包成jar包,关于如何处理读取配置文件的问题特此记录一下. Java代码 out.properties a.jar -com -a.class -in.properties 如上所示,out.properties是于a.jar包在同一文件目录下: in.properties是在a.jar包内部的. 关于a.class如何读取jar内或jar外的配置文件, 如下所示: Java代码 FileInputStream inputStream1 =

Java Service Wrapper将jar包安装成Windows服务

刚接触java,第一次使用Java开发windows服务,也是刚不久看了SSM框架 简直也是一头雾水,不过只要用心理解,其实很简单,下面有详细的步骤,包学包会 在windows上运行jar包,需要在工作目录下使用命令行运行jar包,这样会出现一个命令行窗口 而且这个命令行窗口有可能会不小心被关闭,且服务器启动后需要人为去点击开启 对于有些服务性的程序来说,我们需要将其部署为windows服务,在系统启动的时候自动启动 后来研究了两种方式: 1.使用 JavaService.exe 安装jar包

通过JavaService 将java jar包注册成Windows 服务

一. 下载Javaservice ,把压缩文件解压,放到本地磁盘.下载地址:JavaService 64位 http://download.forge.ow2.org/javaservice/JavaService_2_0_10-amd64.zip JavaService 32位 http://download.forge.ow2.org/javaservice/JavaService-2.0.10.zip二. 准备jar包,查看jar 包Main函数所在的class三. 将jar包.解压后的J

.Net平台下实例类型无法转换成接口类型?

首先这种情况出现在应用程序启动前的方法里面. 本想通过发射来实现一些功能.谁知道被这个坑了. 碰到这种问题.已经相当无语了.同时也不知道该如何解决.望有能之士帮忙解答 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58

Linux c字符串中不可打印字符转换成16进制

本文由 www.169it.com 搜集整理 如果一个C字符串中同时包含可打印和不可打印的字符,如果想将这个字符串写入文件,同时方便打开文件查看或者在控制台中打印出来不会出现乱码,那么可以将字符串中的不可打印字符转换成16进制,此处提供一个函数供使用: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 void printhex(unsigned char *src,int len) {     

使用GPAC将h.265文件转换成mp4和ts文件

在GPAC官网下下载程序并安装,支持以下操作系统: Windows, Windows Mobile, Linux, GCC+X11 or GCC+SDL, including MacOSX, iOS 4.2, Android 2.1, and Symbian 9 for GPAC <= 0.4.5 你GPAC的安装目录下面有两个exe程序mp4box.exe和mp42ts.exe,还有一个mp4client.exe(用于播放视频文件的程序) 以管理员权限进入GPAC目录 1.将h.265转换成m