【发布时间】:2013-12-25 04:24:31
【问题描述】:
我在 Windows 上安装了 jython 2.7 beta 1,并将其 JYTHON_HOME/bin/jython shell 脚本复制到了 MSYS 的 $PATH-visible 位置,但调用
$ jython
不起作用,出现此错误:
java.lang.NoClassDefFoundError: org/python/util/jython
Caused by: java.lang.ClassNotFoundException: org.python.util.jython
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: org.python.util.jython. Program will exit.
Exception in thread "main"
查看这个 jython shell 脚本(我将其重命名为 jython.sh),我发现它需要 Cygwin 或 Darwin。
在我添加的文件开头
export JAVA_HOME='/c/Programs/JavaRE/6u31'
export JYTHON_HOME='/c/Programs/jython2_7b1'
然后它说的地方
case "`uname`" in
CYGWIN*) cygwin=true;;
Darwin) darwin=true;;
esac
我替换为
case "`uname`" in
CYGWIN*) cygwin=true;;
MINGW*) cygwin=true;;
Darwin) darwin=true;;
esac
但它仍然不起作用,与:
$ jython.sh test.j.py
/c/Programs/Path/jython.sh: line 265: /cygdrive/c/Programs/JavaRE/6u31/bin/java: No such file or directory
jython.sh 脚本在内部使用cygpath,但 MSYS 没有,所以它依赖于 Cygwin,导致上述错误。如何解决?
【问题讨论】: