鉴于课程
public class MyObject {
public MyObject() {
System.out.println("true = " + true);
}
}
和jython脚本
import sys
sys.path.append('my-custom.jar')
from my.custom import *
config = MyObject()
在WAS ND 6 wsadmin.bat
Running c:\user\jem\projects\gmm/build/deploy/x.py WASX7209I: Connected to process "dmgr" on node dmgr_node using SOAP connector; The type of process is: DeploymentManager WASX7017E: Exception received while running file "c:\user\jem\projects\gmm/build/deploy/x.py"; exception information:
com.ibm.bsf.BSFException:来自Jython的异常: 回溯(最后面的): 文件“”,第7行,在? 显示java.lang.NullPointerException at java.lang.Class.isAssignableFrom(Native Method) 在org.python.core.PyJavaClass.init_ class _(PyJavaClass.java) ......大约20条线路被削减...... 在org.eclipse.core.launcher.Main.run(Main.java:981) 在com.ibm.wsspi.bootstrap.WSPreLauncher.launchEclipse(WSPreLauncher.java:339) 在com.ibm.wsspi.bootstrap.WSPreLauncher.main(WSPreLauncher.java:94)
java.lang.NullPointerException: java.lang.NullPointerException
现在做什么?
更新:
似乎将jar包含到sys.path
中足以允许找到类,但仅允许实例化它是不够的。如果我将jar解压缩到现有的路径中就可以了。
所以我的新问题是,为什么没有将jar添加到sys.path
工作?是因为jython版本太旧了吗?我相信它是v2.1。
答案 0 :(得分:0)
通常情况下,我认为sys.path
用于包含python模块(或.class
文件)的目录,这可能是解压缩jar时的原因。我认为你真正想要的是将你的jar放在 java classpath 上。这可以通过在调用-wsadmin_classpath
时通过wsadmin
选项提供jar的路径来完成。
答案 1 :(得分:0)
sys.path用于python类文件而不是java文件。 os.path通常也会结合使用,以确保您拥有有效的完整路径。我不知道这是不可能的,但我从来没有运气使用sys.path(在wsadmin中)运行python / jython文件,但我可能只是做错了。