我有一个SAP-DLL来启用编程接口和SAP程序之间的通信。
我跟随c#的示例代码与dll-File结合使用:
var loggerService = LoggerService.GetLoggerService("FileLogger");
var itasProxy = SapProxyFactory.CreateSapProxy(SapSystem.Example, loggerService, "Example_User", StringExtension.CreateSecureString("Example_Password"));
var funcResult = sapProxy.SearchSapAddress(clientNo);
if (funcResult.Successfull)
{
funcResult.ReturnValue = withFormatting
? AddressFormatter.SplitStreetHouseNo(funcResult.ReturnValue)
: funcResult.ReturnValue;
}
现在我希望将相同的功能转移到java。我完全不知道该怎么做。我尝试使用Loggerservice作为启动器,但它不起作用:
public class SAPConnector {
public static void main(String[] args) {
// TODO Auto-generated method stub
connectSAP();
}
public void connectSAP()
{
System.load("C://Temp//SapConnector.dll");
Object loggerService = getLoggerService("FileLogger");
}
public native Object getLoggerService(String lcLogger);
}
我只需要一些信息如何从dll调用函数或者如何将C#代码转换为Java中的代码。
问候,
凯文
答案 0 :(得分:3)
DLL是Microsoft格式。 Java是跨平台的,因此无法识别任何特定于操作系统的内容,例如DLL。
另一种方法是使用JNI (Java Native Interface),但这通常不是一个好的解决方案,因为它会使您的程序依赖于平台。
相反,我会从SAP寻找一个提供类似界面的JAR。 也许是SAP JCO的内容。
您可以看到一些actual code examples using JCO here和一些technical information on step-by-step download and configure here。