jar包集成jdk和python环境
当我们运行需要运行jar包的时候,不想配置jar包需要的jdk和python环境,可以将jdk和python集成到jar中,这样就可以在计算机没有python和jdk的环境下启动运行。
windows系统jar包集成jdk环境
1、正常情况下,我们计算机中有jdk环境,直接使用命令Java -jar jar名称就可以启动jar包运行。jar包运行时需要jdk中jre,所以我们需要提供jdk的jre环境。可以直接到jdk安装目录中直接复制jre或者去官网下载jre环境。将jre和jar包放在同一目录下,使用命令:start ./jre/bin/java -jar ./xxx.jar。jar包就可以正常运行。
Windows系统jar集成python环境
1、jar包集成python和集成jdk是一样的。找到安装python目录文件夹,复制文件。将python文件夹和jar放在同一个文件夹下。使用命令:./python/python.exe ./xxx.py
Linux系统jar集成jdk环境
1、集成方式和window是一样的,不同的是启动命令不一样。启动命令:./jre/bin/java -jar ./xxx.jar
Linux系统jar集成python环境
1、集成方式和window集成方式一样,不同的是启动命令不一样。./python/python ./xxx.py
datax集成jdk环境
1、在datax的bin目录下,有个datax.py脚本。找到ENGINE_COMMAND,将Java -server中Java替换中jre文件中bin目录下的java。如:./jre/bin/java -server
常见问题
datax报错问题
1、datax中将Java -server替换成如:./jre/bin/java -server可能会报错,找不到路径。可以使用代码获取jre的绝对路径。os.path.dirname(os.path.dirname(os.path.abspath(file)))。
os.path.abspath(file)是获取当前file文件的绝对路径。os.path.dirname(os.path.abspath(file))是去掉文件名的绝对路径
通过变量的形式拼接路径。如:
jre_path=os.path.dirname(os.path.dirname(os.path.abspath(file))) +"/"+“bin”+"/"+“java”
最终替换结果是:jre_path + " -server" 。
jar包集成python报错问题
1、在python2.7中报错找不到python27.dll文件,可以手动加入python27.dll文件。
最终的解决方案是:经过多次的尝试,我们使用python3.4.2时,在python目录中手动加入python34.dll和msvcr100.dll时,可以兼容多个window版本。