我在64位系统上运行Windows 7。 我使用netbeans 6.9.1(已安装python插件) 也安装:Python 2.7.1(64),JDK 6更新24(64),
我对术语提取很感兴趣所以我下载了montylingua,它应该用Java或/和Python运行。 这是链接:http://web.media.mit.edu/~hugo/montylingua/
当我尝试运行zip文件中包含的Sample.java代码时,我遇到了这些问题:
****** MontyLingua v.2.1 ******
***** by hugo@media.mit.edu *****
Failed to get environment, environ will be empty: (0, 'Failed to execute command ([\'sh\', \'-c\', \'env\']):
java.io.IOException: Cannot run program "sh": CreateProcess error=2, The system cannot find the file specified')
java.lang.ExceptionInInitializerError
Caused by: Traceback (innermost last):
File "C:\work\montylingua-2.0\copy\JMontyLingua.py", line 0, in __init__
File "C:\work\montylingua-2.0\copy\MontyLingua.py", line 0, in __init__
File "C:\work\montylingua-2.0\copy\MontyLemmatiser.py", line 0, in __init__
IOError: File not found -
at org.python.core.Py.IOError(Py.java)
at org.python.core.PyFile._setup(PyFile.java)
at org.python.core.PyFile.<init>(PyFile.java)
at org.python.core.__builtin__.open(__builtin__.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java)
at org.python.core.PyObject.__call__(PyObject.java)
at montylingua.MontyLemmatiser$_PyInner.__init__$5(MontyLemmatiser.java:5312)
at montylingua.MontyLemmatiser$_PyInner.call_function(MontyLemmatiser.java:5219)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyFunction.__call__(PyFunction.java)
at org.python.core.PyInstance.__init__(PyInstance.java)
at org.python.core.PyClass.__call__(PyClass.java)
at org.python.core.PyObject.__call__(PyObject.java)
at montylingua.MontyLingua$_PyInner.__init__$1(MontyLingua.java:218)
at montylingua.MontyLingua$_PyInner.call_function(MontyLingua.java:163)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyFunction.__call__(PyFunction.java)
at org.python.core.PyInstance.__init__(PyInstance.java)
at org.python.core.PyClass.__call__(PyClass.java)
at org.python.core.PyObject.__call__(PyObject.java)
at montylingua.JMontyLingua$_PyInner.__init__$1(JMontyLingua.java:85)
at montylingua.JMontyLingua$_PyInner.call_function(JMontyLingua.java:63)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyFunction.__call__(PyFunction.java)
at org.python.core.PyInstance.__init__(PyInstance.java)
at org.python.core.Py.initProxy(Py.java)
at montylingua.JMontyLingua.__initProxy__(JMontyLingua.java:256)
at montylingua.JMontyLingua.<init>(JMontyLingua.java:234)
at montylinguaapplication.MontySample.<clinit>(MontySample.java:8)
Could not find the main class: montylinguaapplication.MontySample. Program will exit.
Exception in thread "main" Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)
我熟悉Java,因为我有一些小的编程经验。我对Python一无所知。 我已经设置了运行程序所必需的环境变量“MONTYLINGUA”。
我看到一篇关于Jython的帖子来自与我一样的第一次错误的人,但是我无法从提议的事情做任何事情。 (其他帖子的链接:Jython - javaos.getenv() gives "Failed to get environment, environ will be empty")
任何能正确运行此.java文件的人都可以推荐一些东西。
我也可以上传java代码,但我认为它已经过时,因为它可以在上面提到的网站上找到并且很容易找到...
在项目中,我还包括JyDT_Update_Site_1.4.15 zip,以防万一这会有所帮助,但遗憾的是没有发生任何事情。
也许我必须在特定文件中添加一些代码,例如在其他帖子的情况下,但我不知道在我的系统中添加什么代码。
谢谢你的时间。答案 0 :(得分:1)
在我看来与您链接的帖子中的问题相同。
'执行命令失败([\'sh \', \' - c \',\'env \']): java.io.IOException:无法运行 程序“sh”:
意味着jython被配置为认为它在某种类型的UNIX系统上运行。
答案 1 :(得分:1)
解决方案是在Jython 注册表文件中设置属性python.os
。
您可以按照以下说明找到注册表文件:http://www.jython.org/archive/21/docs/registry.html#finding。
答案 2 :(得分:0)
看起来python代码正在尝试运行shell命令。 但是,因为你在Windows上,这不起作用。
这让我想知道这是否真的是在python中获取环境的规范方法?
答案 3 :(得分:0)
您需要在系统上安装Sun Java编译器1.4.2版。 没有它,您将无法运行MontyLingua Java示例,并且 我们不确定您是否可以将MontyLingua编译为.NET DLL。 搜索www.sun.com以获取Java SE开发工具包的1.4.2版并进行安装 它。