gpt4 book ai didi

java - 从 SAS 调用 java 类。错误 : Could not find class

转载 作者:行者123 更新时间:2023-11-30 08:43:44 24 4
gpt4 key购买 nike

    data Numbers;
do i=1 to 10;
output;
end;
run;

data PrimeNumbers;
set Numbers;
if _N_=1 then declare javaobj j("C:\Program Files\Java\jdk1.7.0_10\bin\checkPrimeNumber");
isPrimeNumber=j.callIntMethod("checkPrimeNumber",i);
if isPrimeNumber=1 then output;
run;


/*-SET CLASSPATH "C:\Program Files (x86)\Java\jre7\bin"*/


/*--------------------------Sample java code----------------------------
public class checkPrimeNumber
{
public checkPrimeNumber()
{
}
public static void main(String args[])
{
checkPrimeNumber CPN=new checkPrimeNumber();
System.out.println ("Result:"+CPN.checkPrimeNumber(23));
}
public int checkPrimeNumber(int num)
{
for (int i=2; i<=(num/2); i++)
if ((num%i) == 0)
return 0;
return 1;
}
}
--------------------------------------------------------------------------*/

日志:-------->

        ERROR: Could not find class C:\checkPrimeNumber at line 45 column 44.  Please ensure that the
CLASSPATH is correct.
ERROR: DATA STEP Component Object failure. Aborted during the EXECUTION phase.
java.lang.ClassNotFoundException: C:\checkPrimeNumber
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)

我已将 CLASSPATH 环境变量设置为C:\Program Files\Java\jdk1.7.0_10\bin 并从命令提示符编译和执行程序。代码在命令提示符下运行良好。但是SAS代码抛出一个错误,所以我添加了-set CLASSPATHC:\Program Files\Java\jdk1.7.0_10\binstatement insasv9.cfglocated在SASFoundation\9.3\nls\en`。我仍然遇到相同的错误(与上面提到的相同)。有什么问题吗?我应该在 SAS 文件/文件夹中的什么位置添加类路径变量,以便 SAS 识别 java 类路径?

最佳答案

在您的 sasv9.cfg 文件中,您应该查找 -JREOPTIONS 选项。在此选项中,将路径添加到参数 -Dsas.app.class.path

在数据步骤中声明 java 对象时,您只能传递类名 - 而不是所有路径。所以声明应该是这样的:

declare javaobj j("checkPrimeNumber")

最后一个。 java 方法的返回值被传递给数据步骤函数中的最后一个参数。调用 java 方法应该是这样的:

j.callIntMethod("checkPrimeNumbers",i,isPrimeNumber);

干杯,克里斯

关于java - 从 SAS 调用 java 类。错误 : Could not find class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34096169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com