[每当我在Eclipse中运行任何jython程序时,在输出的开头都会出现以下错误:
“未能获得环境,环境将会空:(0,'执行命令失败([\'sh \',\'-c \',\'env \']):java.io.IOException:无法运行程序“ sh”:Crea teProcess error = 2,系统找不到文件指定')
首先,我的环境是:
Windows 2008
JDK 1.6.0u10
jython 2.2.1
我做了一些挖掘,然后才意识到此消息是在函数javaos.getenv()中产生的。每当我调用javaos.getenv()函数时,它都会引发以下错误:
C:\ jython2.2.1> java -jar jython.jar
导入javaos
打印javaos.getenv(“ user.name”)
无法获得环境,环境将为空:(0,'执行失败命令([\'sh \',\'-c \',\'env \']):java.io.IOException:无法运行程序“ sh”:Crea teProcess error = 2,系统找不到文件指定')
这很奇怪,因为我当前使用的是Windows计算机,而不是Unix。
尝试取消注释并更改“注册表”文件中的os设置
有趣。好吧,我似乎在这里找到了相关的代码:http://www.koders.com/python/fid4B7C33153C1427D2CE19CE361EA9519D1652F802.aspx?s=self
我正在Windows 7上运行。我正在Websphere wsadmin工具中将Jython作为脚本运行。我遇到了同样的错误。我将这些行从javaos.py剪切粘贴到了脚本中:os或sys.registry.getProperty(“ python.os”)或\ java.lang.System.getProperty(“ os.name”)并返回“ Windows Vista”。因此,我进行了与上述建议相同的手术,即,将Windows Vista添加到javaos.py中,这解决了我的问题。
[我在Eclipse / PyDev下使用Windows Vista和Jython 2.5.1时遇到了相同的错误,方法是编辑javaos.py,以便在getOsType的OR语句中包含“ Windows Vista”;我修复了错误。 (我已在SourceForge的PyDev Tracker下提交了此修复程序的错误。)
我使用了Dave Brands博客中的此技巧:http://dbrand666.wordpress.com/2010/04/08/fix1/