2012-05-18 157 views
0

我可以運行Java,而無需直接在終端發出命令-classpath但只要我嘗試做在cron它拋出這個錯誤:環境路徑 - 終端OSX

Usage: java [-options] class [args...] 
      (to execute a class) 
    or java [-options] -jar jarfile [args...] 
      (to execute a jar file) 

where options include: 
    -d32   use a 32-bit data model if available 
    -d64   use a 64-bit data model if available (implies -server, only for x86_64) 
    -client  to select the "client" VM 
    -server  to select the "server" VM 
    -jvm   is a synonym for the "client" VM [deprecated] 
    -hotspot  is a synonym for the "client" VM [deprecated] 
        The default VM is client. 

    -cp <class search path of directories and zip/jar files> 
    -classpath <class search path of directories and zip/jar files> 
        A : separated list of directories, JAR archives, 
        and ZIP archives to search for class files. 
    -D<name>=<value> 
        set a system property 
    -verbose[:class|gc|jni] 
        enable verbose output` 

研究已經告訴我,這可能是一個環境路徑問題?如何知道使用終端vs cron時我的路徑是什麼?

我envoking的java權從cron,crontab的是一樣的東西:

0 3 * * * *的java -classpath /Users/tb582/Desktop/sample1.jar:/Users/tb582 .... ..

+0

你是從腳本還是直接從cron調用'java'?你會發布腳本(或cron調用)嗎? – paulmelnikow

回答

0

只指定整個路徑在cron:

型 「的Java」

應該類似這樣的東西輸出:

/usr/bin/java 
+1

我懷疑這會解決問題。從OP(java用法)中的輸出可以看出,cron發現一個'java'二進制文件很好。 – paulmelnikow

+0

添加到cron'/ usr/bin/java',所以現在它的'30 20 * * * */usr/bin/java java -classpath' ....出現這個錯誤:'Exception in thread「main」java.lang在java.net.URLClassLoader的$ 1.run(URLClassLoader.java:202) \t在java.security.AccessController.doPrivileged(本機方法)在 \t的Java \t:.NoClassDefFoundError:JAVA 引起:拋出java.lang.ClassNotFoundException java.net.URLClassLoader.findClass(URLClassLoader.java:190) \t at java.lang.ClassLoader.loadClass(ClassLoader.java:306) \t at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301) \t at java.lang.ClassLoader.loadClass(ClassLoader.java :247)' – Tony

+0

你應該在那裏使用/ usr/bin/java -classpath(你有第二個'java') –