【发布时间】:2012-01-20 06:07:38
【问题描述】:
我正在使用 Drools Planner,它在 binaries 目录中附带了 21 个 Jar 文件。例如
drools-core-5.3.0.Final.jar 将提供 org.drools.someClasses。
包含的示例通过运行一个包罗万象的命令在命令行中运行它:
mainClasspath=
for i in binaries/*.jar; do mainClasspath=${mainClasspath}:$i; done
mainClass=org.drools.planner.examples.app.DroolsPlannerExamplesApp
$JAVA_HOME/bin/java -Xms256m -Xmx512m -server -cp ${mainClasspath} ${mainClass} $*
我正在命令行中开发程序。但是最终的应用程序(它只是添加了一个 HTTP 接口)在 JSP 容器中运行,而不是从命令行运行。因此,我需要以编程方式将 jar 文件导入到我的项目中。
问题:如何以编程方式导入 jar 文件?
我宁愿必须在环境变量中指定binaries 路径吗?
更新
我这样做是为了告诉 Java 在全局范围内,可能会在同一目录中找到额外的类,即 . 和 /home/jesvin/dev/drools/binaries。请注意,: 是 Linux 中的分隔符。
declare -x CLASSPATH='.:/home/jesvin/dev/drools/binaries'
您可以按照Miserable Variable's answer 为每个执行实例执行此操作。
最后,在 Tomcat 部署中,我给它一个 HTTP 接口,按照havexz's answer 进行部署。
【问题讨论】:
-
你的服务器是什么,比如tomcat、jboss等?它的版本是什么?因为 soln 会因服务器而异。
-
Tomcat 6. 但是我想先在命令行上试试这个方法
-
您必须首先在命令行中运行它到底是什么意思?您不需要以编程方式在您的 java 代码中导入 jars。
-
@aitchnyu 您的问题似乎已经有办法从命令行执行此操作,您甚至说“我将这个项目作为 JSP 运行,而不是从命令行运行”暗示您想要一个非命令行解决方案,但是您说您“想先在命令行上尝试该方法”。是哪个?
-
我希望原型应用程序在命令行中工作以进行测试。然后我正在编写一个导入原型应用程序的JSP 应用程序(我用它来提供一个方便的HTTP 接口)。抱歉,我对以前的 cmets 不太清楚。