0

シェル スクリプトで java -cp コマンドを使用して jar を起動します。例: Linux の RunFileConverter.sh ファイルは問題なく動作します。しかし、「crontab -e」を介してスクリプトを実行しようとすると、ClassFormatError が返されます。

jar は Java 6 jdk (最新) を使用して Win7 でコンパイルされ、(redhat) Linux サーバーの Java バージョンも JRE 6 (1.6.0_29) です。

ファイルの所有者はパイプであり、crontab は同じユーザーを介して起動されます。

RunFileConverter.sh の内容:

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

ファイル構造 (/home/pipe/Custom/cbs/): lib/somelib.jar FileConverter.jar FileConverter.properties RunFileConverter.sh fileconverter.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();

    }
}

crontab-e

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

エラーが何であるかわかりません

4

1 に答える 1

3

ほとんどの場合、cron には異なる (古い) バージョンのjavain パスがあります。

java -versioncron経由で実行するとどうなりますか?

于 2012-07-30T14:51:33.260 に答える