Kevin Barz
Kevin Barz

Reputation: 41

How to call Function from an C# dll in Java?

i have a SAP-DLL to enable communication between a Programming interface and the SAP Programm.

I have following example Code for c# in combination with the 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;
}

Now i want the same functionality to be transferred to java. I have absolutely no clue how to do that. I tried the following with Loggerservice as a starter, but it doesn't work:

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);
}

i just need some kind of information how to call the Functions from the dll or an example how to transfer the C# Code to working Code in Java.

Greetings,

Kevin

Upvotes: 0

Views: 883

Answers (1)

Yoav Gur
Yoav Gur

Reputation: 1396

DLL is Microsoft format. Java is cross-platform, thus can't acknowledge anything operating-system specific, such as DLL.

One way around that is to use JNI (Java Native Interface), but that's usually not a good solution, as it makes your program platform-dependent.

Instead, I would look for a JAR from SAP, that provides a similar interface. Maybe something along SAP JCO.

You can see some actual code examples using JCO here, and some technical information on step-by-step download and configure here.

Upvotes: 3

Related Questions