CLASSPATH=.:./lib
export JAVA_HOME CLASSPATH
java -jar -cp $CLASSPATH -Xms1G -Xmx4G /home/jemmy/my.jar 不只宣告JAVA_HOME和CLASSPATH環境變數,要被crontab執行,其jar檔還要附上絕對路徑。此外,若程式裡有遇到需要讀相對路徑的配置檔,也就不能像Spring一樣在ClassPath被搜尋到,又該如何? 以本例來看,是用oracle這個user登入(. /oracle/.profile),也表示相對路徑之基準路徑為/oracle,而my.jar程式可以透過如下方式取得該jar絕對路徑: String classPath = MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath(); 其classPath會是/home/jemmy/my.jar。是故剔掉my.jar即絕對路徑:classPath.replaceAll("[^/]+\\.jar$", "");
