LoginSignup
5

More than 3 years have passed since last update.

Java初心者でもできるPCへのJCoを使ったSAPシステム接続環境構築

Last updated at Posted at 2018-01-10

Javaを全然使ったことない筆者が、SAPシステムへ接続するためJCo(SAP Java Connector)を含めたJava環境構築しました。その際の手順です。約1日程度で構築しましたが、Java知っている人ならもっと速いです(Javaコンパイル手順や文法などを見ながらやっていたので時間かかりました)。

前提

この記事を最初に投稿したのは2017年12月で、JCo3.0.17が最新でした。一部の情報を最新化しています。
使用するJCoは2020年5月時点で最新の3.1.2です。
JCo3.0.17はJava 9に未対応なのでJava 8で環境構築しています。SAP推奨はSAP JVMなのですが、今回はOracle JVMにしています(SAPのサイトからダウンロードして解凍が手間だったため)。
Windows10 64-bit環境に構築しています。

以下の情報は必ず、事前にチェックしておきましょう。すべて、SAP Support Portalの認証が必要です。

情報源 内容
SAP Connector Information SAPのコネクタに関する最新情報
※たまに誤りある場合があるので、リンクするノートは参照しておく(ノートが正しい)
ノート2786882「SAP JCo 3.1 release and support strategy」 JCo3.1に関する最新情報
各種ノートとKBA コンポーネント"BC-MID-CON-JCO"でJCoに関する留意する情報がないか事前チェック

構築手順

1. JDKインストール

1.1. JDKダウンロード

Java SE DownloadページからJDKをダウンロードします。最新のJava 9ではないので、少し下までスクロールします。
※初心者には何をインストールするかわからなかったので、「JavaのJDK/JRE/Server JREの使い分け」を参考にしました。JDKはJREを内包しているらしい。
JDKInstall01.JPG

ライセンス条項に同意してWindows x64向けをダウンロード。
JDKInstall02.JPG

1.2. JDKインストール

「【初心者でもすぐわかる】JDKのインストール方法 Windows編」を参考にインストールしました。
ダウンロードしたインストールファイルを実行します。
JDKInstall03.JPG
JDKInstall04.JPG
JDKInstall05.JPG
JDKInstall06.JPG

1.3. インストール後処理

環境がWindowsなのでWindowsボタン+R(ファイル名を指定して実行)で"sysdm.cpl"を入力。システム詳細設定で環境変数を入力します。
JDKInstall11.JPG

システム環境変数Pathに新しいパスを追加します。
JDKInstall12.JPG
JDKInstall13.JPG

ここで入力するのはインストールされたJDKの中のパスです。インストールしたバージョンによってパスが異なるので注意ください。
JDKInstall14.JPG

新しいシステム環境変数JAVA_HOMEも作成します。
JDKInstall15.JPG

Pathに追加した時と同じパスを追加します。
JDKInstall16.JPG

1.4. インストール確認(バージョン表示)

コマンドラインから正しくインストールできているか確認します。下記コマンドでインストールされているJavaのバージョンを表示します。

java -version

JDKInstall20.JPG

1.5. インストール確認(コンパイルと実行)

最初のJavaプログラムを作り、コンパイル、実行をします。簡易確認なのでEclipseのようなIDEではなくテキストエディタで実行しています。

1.5.1. フォルダ作成とコーディング

Cドライブに"jsample"フォルダを作成して、下記のコードをテキストエディタで"sample.java"という名前で保存(文字コードはS-JISにしていますが、他でも可能か未確認)。

sample.java
class sample{
  public static void main(String args[]){
    System.out.println("Hello World!");
  }
}

1.5.2. コンパイル

コマンドプロンプトで"jsample"フォルダにパスを移動して、下記コマンドを実行。

javac sample.java

sample.classというファイルが同じフォルダにできています。

1.5.3. Java実行

この状態で下記コマンドを実行することで、"Hello World"が出力。
※classの拡張子がないことに注意ください。

java sample

JDKInstall31.JPG

2. Visual Studio 2013 C/C++ runtime librariesインストール

Windows環境にはVisual Studio 2005 C/C++ runtime librariesなるものが必要です。詳細はノート2786882「SAP JCo 3.1 release and support strategy」に記載があります。

On Windows platforms, JCo 3.1 requires the Visual Studio 2013 C/C++ runtime libraries to be installed on the system. If not present, download and install the "Visual C++ 2013 Redistributable Package" from the Microsoft knowledge base article https://support.microsoft.com/en-us/help/4032938 and choose the package, which corresponds to the used Locale and JVM bit-width (x64 for 64-bit or x86 for 32-bit).

64bitなので、リンク先のvcredist_x64.exeをダウンロード(日本語にしています)してインストール。

3. JCoインストール

3.1. JCoダウンロード

SAP Connector InformationからJCoをダウンロードできます。「Microsoft Windows and Windows Server」の「64bit x86」をクリック。
image.png

3.2. JCo展開

ローカルPCのCドライブにディレクトリ"SAPJCo"を作り、ダウンロードしたファイルを解凍して置きます。
JCOInstall22.JPG

3.3. JCoインストール後処理

「1.3. インストール後処理」と似ています。
環境がWindowsなのでWindowsボタン+R(ファイル名を指定して実行)で"sysdm.cpl"を入力。システム詳細設定で環境変数を入力します。
JDKInstall11.JPG

システム環境変数Pathに新しいパスを追加します。
JDKInstall12.JPG
JDKInstall13.JPG

ここJCoファイルを展開したパスを入力します。
JCOInstall31.JPG

新しいシステム環境変数CLASS_PATHも作成します。
JDKInstall15.JPG

「1.5.1. フォルダ作成とコーディング」で作成したパスとsapjco3.jarをパスつきでセミコロン結合して追加します(C:\jsample;C:\SAPJCo\sapjco3.jar)。
JCOInstall32.JPG

3.4. JCoインストール後確認

コマンドプロンプトで下記を入力してインストール確認します。

java -jar C:\SAPJCo\sapjco3.jar

こんな画面が出れば成功です。
JCOInstall41.JPG

3.5. JCoを使ったSAPシステム疎通確認

最後に以下のコードでJCoを使ったSAPシステムとの疎通確認します。Host名とユーザ・パスワードなどは適宜変更して、テキストエディタ(Eclipse等IDEでもOK)に"ConnectionTest.java"というファイル名で保存ください。ファイルを置く場所は「1.5.1. フォルダ作成とコーディング」で作ったCドライブ"jsample"フォルダにしています。

ConnectionTest.java
import java.io.File;
import java.io.FileOutputStream;
import java.util.Properties;

import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoDestinationManager;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.ext.DestinationDataProvider;

public class ConnectionTest
{
    static String ABAP_AS = "ABAP_AS_WITHOUT_POOL";

//  SAPシステム情報
    static
    {
        Properties connectProperties = new Properties();
        connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "xxxx"); //host名を正しく入れる
        connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR,  "00");
        connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "400");
        connectProperties.setProperty(DestinationDataProvider.JCO_USER,   "fukuhara");
        connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "xxxx");
        connectProperties.setProperty(DestinationDataProvider.JCO_LANG,   "en");
        createDataFile(ABAP_AS, "jcoDestination", connectProperties);
    }    

//  SAPシステム情報のファイル作成
    static void createDataFile(String name, String suffix, Properties properties)
    {
        File cfg = new File(name+"."+suffix);
        if(!cfg.exists())
        {
            try
            {
                FileOutputStream fos = new FileOutputStream(cfg, false);
                properties.store(fos, "for tests only !");
                fos.close();
            }
            catch (Exception e)
            {
                throw new RuntimeException("Unable to create the destination file " + cfg.getName(), e);
            }
        }
    }

    public static void main(String[] args) throws JCoException
    {
        JCoDestination destination = JCoDestinationManager.getDestination(ABAP_AS);
        System.out.println("Attributes:");

//      SAPシステム疎通
        System.out.println(destination.getAttributes());
        System.out.println();
    }
}

あとはJavaコンパイルをコマンドプロンプトから実行。そしてJavaプログラムの実行。SAPシステムとRFCで通信してシステム情報を取得表示します。

javac ConnectionTest.java

java ConnectionTest

JCOInstall51.JPG

Eclipseの場合

Eclipseで開発する場合は以下のようにJCoを使えるようにします。
プロジェクトで右クリックして、Properties を選択。
JCoInstall61.JPG

Java Build PathでLibrariesタブで「Add External JARs...」ボタンを押下。
JCoInstall62.JPG

エクスプローラーでsapjco3.jarを選択して、終了。
JCoInstall63.JPG

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
5