java - 通过 sh 脚本启动 jar 工作正常,但通过 crontab 给出 ClassFormatError

标签 java linux shell cron shellexecute

通过 shell 脚本中的 java -cp 命令启动 jar,例如:Linux 上的 RunFileConverter.sh 文件没有问题。但是,当我尝试通过“crontab -e”执行脚本时,它给了我一个 ClassFormatError。

该 jar 是在 Win7 上使用 Java 6 jdk(最新)编译的,(redhat)linux 服务器上的 java 版本也是 JRE 6(1.6.0_29)。

文件的所有者是 pipe,并且 crontab 是通过同一用户启动的。

RunFileConverter.sh 的内容:

java -cp /home/pipe/Custom/cbs/:/home/pipe/Custom/cbs/FileConverter.jar fileconverter.Launcher

文件结构(/home/pipe/Custom/cbs/): 库/somelib.jar 文件转换器.jar 文件转换器.properties RunFileConverter.sh 文件转换器.log

精简启动类文件:

package fileconverter;

import java.io.*;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.logging.FileHandler;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Launcher {

    // logger
    public final static Logger LOGGER = Logger.getLogger(FileConverter.LOGFILE);

    /**
     * Main class
     * @param args
     * @throws FileNotFoundException 
     */
    public static void main(String[] args) throws FileNotFoundException {

        // logger handlers, properties etc ...
        Handler fileHandler;
        // ...


        // create converters
        FileConverter requestConverter = new RequestFileConverter();
        FileConverter exportConverter = new ExportFileConverter();

        // start ya conversions, aarrr mate
        requestConverter.run();
        exportConverter.run();

    }
}

定时任务

*/5 * * * * /home/pipe/Custom/cbs/RunFileConverter.sh

我不知道错误是什么

最佳答案

很可能 cron 在路径中确实有不同(旧)版本的 java

如果你通过 cron 执行 java -version 会说什么?

关于java - 通过 sh 脚本启动 jar 工作正常,但通过 crontab 给出 ClassFormatError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11723764/

相关文章:

java - 向正则表达式添加长度约束

java - Java中的Anagram算法

linux - 如何将nohup pid输出到top命令?

linux - 查找大小大于 x MB 的目录

php - 如何使用 shell 和终端克隆 mysql 数据库而不进行 mysql 转储和上传

bash - bash脚本的循环

java - 检查字符串是否包含另一个整个字符串

java - 空指针访问 : The variable "tipoEstablecimiento" can only be null at this location

ruby - Mettre des accents français dans des fichiers - 将法语口音放入 HTML 文件 (RoR)

c++ - 是否可以强制Linux在释放后使虚拟内存失效