我试图从SAS中的数据步骤调用java类对象。 Java类文件已放在类path./dir/folder_location
中SAS的类路径变量已更改为存储类文件的文件夹。这已经从SAS企业指南中进行了验证,我将打印日志的类路径
SYSGET(“CLASSPATH”)返回/ dir / folder_location
当我运行以下路径来在类中声明一个java对象时:
data _null_;
declare javaobj j ('Classname');
run;
这给我一个错误
错误:在第x行y列找不到类'ClassName'。请确保CLASSPATH正确无误。 错误:数据步骤组件对象失败。在执行阶段中止。
当我使用命令
获取java信息时PROC javainfo CLASSPATHS;
run;
这将返回不同的路径。这与上面的类路径不同吗?
有没有人想过为什么会发生这种情况以及解决方案是什么?
提前致谢。
答案 0 :(得分:2)
您的Java类是否偶然出现在JAR文件中?如果是这样,文档似乎说类路径需要包含.jar文件。
在SAS中,必须设置CLASSPATH环境变量,以便Java对象可以找到您的Java类。 Java对象表示在当前Java类路径中找到的Java类的实例。您使用的任何类都必须出现在类路径中。如果类在.jar文件中,则.jar文件名必须出现在类路径中。
答案 1 :(得分:1)
SAS文档与该主题一样(两者都不如)。 在客户端/服务器应用程序中,生成器会忽略服务器上用户的环境变量。 幸运的是,我找到了一个非常简单的解决方案。 尝试这个: 选项set = CLASSPATH“此处的类路径”;
答案 2 :(得分:0)
也许您可以在sasv9配置文件中以简单模式设置类路径。
通常在此安装路径上:
c:\SAS94\x86\SASFoundation\9.4\sasv9.cfg
或者不是x86版本:
c:\SAS94\SASFoundation\9.4\sasv9.cfg
您可以在配置的此行末尾注册您的JAR文件。
示例:
-Dsas.app.class.path=/sas/sas94/SASVersionedJarRepository/eclipse/plugins/tkjava.jar:/yourpath/your.jar
我记得以前的版本是相同的(9.3,9.2,9.1)