タグ

javaとcに関するoka_Elizabethのブックマーク (8)

  • JNI -DLLからJava側のフィールドを参照する-

    前回はパラメータでデータの授受を行いましたが、全てがパラメータ渡しっていうのも面倒くさい場合があるかもしれません。 そこで、今回はDLLからJava上のフィールドを直接参照するサンプルを作ってみました。 ページ先頭へ戻る // FieldRef.java // import java.io.*; public class FieldRef { private static int iStatic = 10; private int iClass; private native void FieldAccess(); public FieldRef() { } public void setClassVal(int i) { iClass = i; } public void showStaticVal() { System.out.println("Static:"+iStatic); }

  • 「次に来る」プログラミング言語を占ってみる

    今回は、インターネット上でどんなコンピュータ言語が話題になっているかを表すデータを見ながら、今後のプログラミング言語の流行を予測してみる(編集部) P言語の人気はいつまで続くのか Linuxなどの、オープンソースソフトウェアを利用して開発したWebアプリケーションが一般的なものになってしばらくたつ。Webアプリケーション開発で多くの人が使うソフトウェアの組み合わせの略称である「LAMP」という言葉も有名になった。OSであるLinuxと、WebサーバであるApache HTTP Server(以降、Apache)、リレーショナルデーターベース管理システム(RDBMSMySQL、そしてサーバサイドで動作するプログラム開発に使用するプログラミング言語であるP言語(PHPPerlPython)の頭文字を取った言葉だ。日ではP言語の位置にRubyが入ることも多い。 しかしコンピュータやネット

    「次に来る」プログラミング言語を占ってみる
  • JNIより簡単にJavaとC/C++をつなぐ「JNA」とは(1/4)-@IT

    インターネットの普及に加えて、リッチクライアント/RIAの発展とともに、アプリケーションの形態は、C/S(クライアント/サーバ)システムから、Webアプリケーションシステムにシフトしています。一般の情報発信システムだけではなく、企業の基幹情報システムまで、盛んにWebアプリケーションで構築するようになりました。 この変化の主役であるといわれる、Java技術は、Webアプリケーションシステムの発展とともに、ネットワークの親和性や、プラットフォーム適用の多様性で、広く受け入れられて、Webアプリケーションシステム開発の基盤技術になっています。 これまでのC/Sシステムでは、サーバロジックはC/C++で実装されるケースが一般的でした。C/SシステムからWebアプリケーションシステムにシフトする際に、Java技術を導入することを決めた場合、Java技術で、すべて新規開発するのは1つの選択肢ですが、

  • 12 、クラスパスの簡単な説明と設定 - コマンド編、Eclipse 編-

    Java にはコア API と呼ばれる標準的なライブラリーが含まれています。しかし、コア API に含まれていない、 外部のライブラリ ( jar ファイルや zip ファイル ) を使用したい場合があります。その場合、利用したいライブラリにクラスパスを通して、 ライブラリの場所をコンパイラや JVM 側につたえる必要があります。ここではクラスパスの設定について簡単に説明します。 クラスパスの設定には -classpath オプションもしくは環境変数 CLASSPATH を使用します。 -classpath オプション 以下に -classpath オプションを使用した例を記述します。 ここでは、Oracle 10g からのデータ取得のサンプルプログラム DataAccess.java を用意し、DataAccess.java をコンパイル、実行するために必要なライブラリである 「o

  • ゼロから学ぶJNI:Java Native Interface - builder by ZDNet Japan

    Java Native Interface(JNI)とは、Javaの1レイヤーである。JNIを用いると、Java Virtual Machine(JVM)上で動作しているJavaのコードから、CやC++、アセンブリのような他の言語で記述されたネイティブなアプリケーションやライブラリを呼び出すことが可能になる。また、逆にそれらのネイティブなコードからJavaのコードを呼び出すことも可能だ。 JNIは、アプリケーションのコードをすべてJavaで記述することが不可能な場合に、ネイティブなメソッドを呼び出してその問題を回避する目的で使用される。具体的には、たとえばJavaの標準クラスライブラリがプラットフォーム依存の機能やプログラムライブラリをサポートしていないような場合には、JNIが用いられる。また、他の言語で書かれている既存のアプリケーションを改修し、Javaからアクセスできるようにする目的で

  • JNI:Java Native Interface

    JavaからC/C++言語を呼び出す、またはその逆の方法として、JNI(Java Native Interface)というAPIが提供されています。記事では、JavaからC/C++言語をネイティブメソッドとして呼び出すコードとそのコンパイル・リンク・実行手順、およびC/C++言語からJavaを呼び出すコードとそのコンパイル・リンク・実行手順を記します。 JNIに必要なもの JNIは、Javaで記述する部分とC/C++で記述する部分があります。Java側はJDKがあればよいのですが、C/C++側はC/C++コンパイラが別途必要となります。 Windows環境で必要なもの Windows環境のJavaVMはネイティブメソッドをDLL(Dynamic Link Library)という形で用意されていないといけないので、DLLを構築できるC/C++コンパイラが必要となります。 Windows環境

  • JNIメモ(Hishidama's Java native interface Memo)

    Solarisの例: % cc -G -I /usr/java/include -I /usr/java/include/solaris JniJikken.c -o libJniJikken.so Solarisでのmakefileの例: all: libJniJikken.so lib%.so: %.c %.h cc -G $< -I /usr/java/include -I /usr/java/include/solaris -o $@ %.h: %.class javah $* %.class: %.java javac $< ↑この例の場合、javaのコンパイル・javahでの生成まで含んでいる。 VC++の例: インクルードパスの追加方法参照。 ↓JDK1.6の場合 C:\Program Files\Java\jdk1.6.0\include,C:\Program Files\

  • volatileで最適化を抑制する - 職業としてのプログラミング

    C言語やC++,Javaにはvolatileという修飾子があります。組み込み系ソフトウェアやマルチスレッドのアプリケーションを書いている方にとっては、なじみ深い存在ですが、そうでない方にはあまり縁がないのかもしれません。しかし、volatileの使い方や存在意義を知らないままコーディングを行うと、思わぬバグを引き起こす場合があります。今回は、そのvolatileキーワードについて簡単に説明したいと思います。 volatileは初期のCであるK&Rには含まれていませんでしたが、ANSI C(C89)以降のC標準規格にはconstと一緒に含まれるようになりました(constとvolatileをあわせてcv修飾子と呼ぶこともあります)。一般的なCなら必ず備えている修飾子です。 volatile修飾子の意味ですが、「プログラミング言語C ANSI規格準拠」によると、 volatileの目的は,黙っ

  • 1