【发布时间】:2011-03-27 00:46:09
【问题描述】:
我有一个相对较大的 Java 应用程序,它会从对 Python 的热爱中受益。为此,我一直致力于在 Jython 中启动和运行它。我当前的障碍是正确设置类路径。
我采用了两种方法来设置类路径:
- 使用 shell 脚本,我建立了一个 jar 列表并执行
java -cp ${CP} -jar jyton.jar其中 $CP 是我的应用程序所需的 jar 列表。这似乎不起作用。我无法从这些 jar 中导入任何类,只能得到ImportError: No module named apache。 - 使用引导 python 脚本,我使用 glob 创建了一个路径列表,并使用
[sys.path.append(path) for path in JAR_LIST]将它们附加到当前路径。这似乎工作正常;我现在可以从包含的 jar 中导入我需要的任何类。
以上内容有点令人困惑,因为我能找到的大多数信息都倾向于使用 $CLASSPATH 和 -cp 来添加你的 jar,但我无法让它工作。所以到目前为止的问题:#2 是在使用 Jython 时向类路径添加依赖项的正确方法吗?
我质疑我的方法的主要原因是我仍然无法充分利用我的应用程序。我的应用程序中的许多地方都使用相对 URL 来尊重资源:classpath:some-critical-file.xml
some-critical-file.xml 和我的一些类位于同一个 jar 中。我可以从那个 jar 中导入类,但是任何尝试使用 classpath:some-critical-file.xml 加载我的 xml 都会导致 java.io.FileNotFoundException
任何关于为什么我的课程可用但使用classpath: 的资源的相对路径的任何见解都将不胜感激。在这一点上,我不知所措。
【问题讨论】:
-
如何打开像“classpath:file.xml”这样的路径?