シェル スクリプトで 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
エラーが何であるかわかりません