【发布时间】:2011-09-15 02:31:15
【问题描述】:
我在 /Users/joe/.scala/lib 下有以下 jar:
commons-codec-1.4.jar
httpclient-4.1.1.jar
httpcore-4.1.jar
commons-logging-1.1.1.jar
httpclient-cache-4.1.1.jar
httpmime-4.1.1.jar
下面是我用 scala 编写的 test.sh。
#!/bin/sh -v
L=`cd /Users/joe/.scala/lib;pwd`
cp=`echo $L/*.jar|sed 's/ /:/g'`
echo $cp
exec scala -classpath $cp $0 $@
!#
println(new org.apache.commons.httpclient.HttpClient())
这是我得到的错误:
$ ./test.sh
#!/bin/sh -v
L=`cd /Users/joe/.scala/lib;pwd`
cd /Users/joe/.scala/lib;pwd
cp=`echo $L/*.jar|sed 's/ /:/g'`
echo $L/*.jar|sed 's/ /:/g'
echo $cp
/Users/joe/.scala/lib/commons-codec-1.4.jar:/Users/joe/.scala/lib/commons-logging-1.1.1.jar:/Users/joe/.scala/lib/httpclient-4.1.1.jar:/Users/joe/.scala/lib/httpclient-cache-4.1.1.jar:/Users/joe/.scala/lib/httpcore-4.1.jar:/Users/joe/.scala/lib/httpmime-4.1.1.jar
exec scala -classpath $cp $0 $@
/Users/joe/Desktop/scala/./test.sh:7: error: object httpclient is not a member of package org.apache.commons
println(new org.apache.commons.httpclient.HttpClient())
^
one error found
然而,没有任何类路径依赖的简单方法可以工作: 你好.sh
#!/bin/sh
exec scala "$0" "$@"
!#
println(new java.util.Date())
知道我在第一个示例中做错了什么吗?或者,在使用 scala 脚本时设置类路径依赖项的最佳方法是什么?
【问题讨论】:
-
有没有可能因为你的jar不包含
org.apache.commons.httpclient这个简单的原因,这个错误是正确的? -
@Langali:为什么你的问题被“测试测试测试测试”取代了?别了。
标签: java bash scala scripting jvm