2017-12-15 18 views
0

私はプログラミングインタフェースとSAPプログラム間の通信を可能にするSAP-DLLを持っています。JavaのC#DLLから関数を呼び出す方法は?

私は、DLL-ファイルとの組み合わせでのC#のコード例を以下している:

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

私は作業にC#のコードを転送する方法DLLまたは例から関数を呼び出す方法の情報のいくつかの種類を必要としますJavaのコード。

挨拶、

ケビン

+0

@ジョン:いいえ、それはあなたが投稿したスレッドではありませんが全く異なるDLL-問題 –

+0

ファインに基づいており、私は私の重複提案を削除します。しかし、あなたはJavaからC#コードを呼び出す方法を探していますが、そうではありませんか?そうでない場合は、あなたの質問に言い返すべきです。 – john

+0

2つのスニペットが共通しているものはわかりません。私の意見では、彼らは完全に異なっています。とにかく "あなたは仕事をしません"と書くと、それはどういう意味ですか?あなたが試したものとそうしたときにどんな問題があったのかを正確に表示してください。これには、あなたの現在の秘書と、すべてのエラー/例外/予想外の動作/予期しない結果が含まれます。 – HimBromBeere

答えて

2

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を見ることができます。

+0

コメントをいただきありがとうございます、私はすでにそれを探しましたが、今は私はこの作業を取得しなければなりません...あなたが見たように、私はJNIを試しましたが、私は間違いを犯したか何かを忘れてしまったと思います。 ...私が心に持っていた別の解決策は、VBでコードを作成し、JavaからVBスクリプトを呼び出すことですが、それは良い解決策ではありません... –

+0

Javaはplattformに依存しません - .NETとしても(https: //スタックオーバーフロー。com/questions/3656721/is-net-platform-independent) - これはすべてのJavaコードをどのOSでも実行できるわけではありません。このようなプログラムはWindowsマシン上でのみ実行されます。このJNIはまさにOPが必要とするものであり、JAVAから.NETアセンブリを呼び出すことは絶対に大丈夫です。 – HimBromBeere

+0

@HimBromBeereは私の構文ですか?または私は何かがこの仕事を得るために逃したのですか? –

関連する問題