gcj/cni


Top / gcj / cni

CNI (Cygnus Native Interface)

ここではCNIについて記載します。 CNIは、 Cygnus Native Interfaceの略であり、 C++を使ってJavaネィティブメソッドを書くための便利な方法です。標準的なJNI (Javaネィティブインタフェース) に対する、より効率的かつより便利な、しかし移植性は弱い代替策です。

http://www.asahi-net.or.jp/~wg5k-ickw/html/online/gcj-3.2.1/gcj-ja_12.html

使ってみよう

Hello,World!

Hello.cpp

System.out.println を C++ からこんな風に呼びます。

#include <gcj/cni.h>
#include <java/lang/System.h>
#include <java/io/PrintStream.h>
#include <java/lang/Exception.h>

#define _(String) JvNewStringLatin1(String)

int main(int argc, char** argv)
{
    using namespace java::lang;

    try
    {
        JvCreateJavaVM(NULL);
        JvAttachCurrentThread(NULL, NULL);

        JvInitClass(&System::class$);
        System::out->println(_("Hello from C++"));

        JvDetachCurrentThread();
    }
    catch (Exception* e)
    {
        System::err->println(_("Unhandled Java exception:"));
        e->printStackTrace();
    }
}

コンパイル

gcj -o Hello Hello.cpp
./Hello
Hello from C++

MENU

now: 1

リンク


最新の20件
2018-09-03 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 1931, today: 1, yesterday: 0

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:00 (3831d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.015 sec.