zoukankan      html  css  js  c++  java
  • 在java.ext.dirs中使用环境变量导致crontab执行不成功的问题及解决

    在java.ext.dirs中使用环境变量导致crontab执行不成功的问题及解决

    1 java.ext.dirs的使用和环境变量

    在一个小项目中,出于简化需要,没有划分不同的模块,而是视为一个模块,打成一个jar包,通过java -cp 类名的方式进行不同的调用。
    因为引用的jar包比较多,所以使用了java.ext.dirs进行简化处理。为了保证java自身的ext jar包引用,需要在java.ext.dirs中增加相应路径。
    命令行如下:

    java -Djava.ext.dirs=$JAVA_HOME/jre/lib/ext:/project/script/ -cp /project/script/ -Dlog4j.configuration=file:/project/script/log4j.properties com.galaxy.Comments 洛阳 /project/out/
    

    这样,在 /project/script/中的所有jar文件都会自动加入到classpath中。
    该命令在shell模式中运行正常。

    2 问题:在crontab中执行失败

    上述命令原样复制到crontab中,会发现执行失败。经过分析,发现是在调用java自身的ext中jar包内容时失败。
    初步判断是环境变量$JAVAHOME在crontab执行的环境中不存在造成的。

    3 解决办法

    在crontab中,先导出环境变量,然后再执行脚本即可。

    35 11 * * * . /etc/profile;java -Djava.ext.dirs=$JAVA_HOME/jre/lib/ext:/project/script/ -cp /project/script/ -Dlog4j.configuration=file:/project/script/log4j-comment.properties com.kulv.spider.ota.comment.Comments 洛阳 /project/out/
    

    Author: galaxy

    Created: 2016-08-11 Thu 13:24

    Emacs 24.5.6 (Org mode 8.2.10)

    Validate

  • 相关阅读:
    linux开机启动详细流程图
    linux kernel map
    超全整理!Linux性能分析工具汇总合集
    MySQL 数据类型简介 创建数据表及其字段约束
    利用PyMySQL模块操作数据库
    数据表修改详细版
    数据库一对一、一对多、多对多关系
    web前端开发浅析
    前端开发感悟:日常工作与新技术
    请问有哪些前端技术可以提高页面加载速度?
  • 原文地址:https://www.cnblogs.com/galaxy-gao/p/5760611.html
Copyright © 2011-2022 走看看