Java类路径搜索问题:直接设置与使用环境变量
我有一个从Java调用的Scala库 这是scala代码Java类路径搜索问题:直接设置与使用环境变量,java,classpath,javac,scalar,Java,Classpath,Javac,Scalar,我有一个从Java调用的Scala库 这是scala代码 package org.fun object ScalaPower{ def showMyPower(time:Int) = { (0 to time-1).mkString(", ") } } 这是Java代码 import org.fun.*; public class Test { public static void main(String args[]) { System.out.pr
package org.fun
object ScalaPower{
def showMyPower(time:Int) = {
(0 to time-1).mkString(", ")
}
}
这是Java代码
import org.fun.*;
public class Test {
public static void main(String args[]) {
System.out.println("show my power: " + ScalaPower.showMyPower(3));
}
}
使用此生成脚本:
SCALA_LIB=~/bin/jar/scala/scala-library.jar
scalac -d ~/temp/java s.scala
javac -cp .:~/temp/java:$SCALA_LIB Test.java -d ~/temp/java
java -cp .:~/temp/java:$SCALA_LIB Test
我有错误
Test.java:1: error: package org.fun does not exist
import org.fun.*;
^
Test.java:5: error: cannot find symbol
System.out.println("show my power: " + ScalaPower.showMyPower(3));
^
symbol: variable ScalaPower
location: class Test
2 errors
有趣的是,当我从环境变量获取类路径时,我没有问题
SCALA_LIB=~/jar/scala/scala-library.jar
JP=.:~/temp/java:~/temp/java2:$SCALA_LIB
scalac -d ~/temp/java s.scala
scalac -d ~/temp/java2 s2.scala
javac -cp $JP Test.java -d ~/temp/java
java -cp $JP Test
SCALA_LIB=~/jar/scala/scala-library.jar
JP=.:~/temp/java:~/temp/java2:$SCALA_LIB
scalac -d ~/temp/java s.scala
scalac -d ~/temp/java2 s2.scala
javac -cp $JP Test.java -d ~/temp/java
java -cp $JP Test
为什么会这样?我是否有始终将环境变量用于设置类路径和-cp
?还是我犯了一些错误?我检查了MacOSX和Linux;它们都使用$JP,但不使用直接路径登记
代码是从这篇文章中复制的:我应该使用环境变量作为-cp的参数。 我检查了MacOSX和Linux;它们都使用$JP,但不使用直接路径登记