Google PlayストアでUnionpediaアプリを復元するために作業中です
🌟ナビゲーションを改善するためにデザインを簡素化しました!
Instagram Facebook X LinkedIn

Java Native AccessとJava Native Interface

ショートカット: 違い類似点ジャカード類似性係数参考文献

Java Native AccessとJava Native Interfaceの違い

Java Native Access vs. Java Native Interface

Java Native Access (JNA) とは、JavaプログラムがJava Native Interfaceを用いずにネイティブの共有ライブラリにアクセスする方法を提供するライブラリである。JNA は最小限の作業でネイティブコードにアクセスできることを目指して設計されており、決まりきったアクセスコードを書いたりグルーコードの生成を行ったりせず、ネイティブコードへ正しく簡単にアクセスすることを最優先としている(ただし、性能にも注意が払われている)。JNAライブラリはネイティブコードを呼び出すためにlibffiを用いており、名前を指定してライブラリをロードするネイティブの関数を用いて、目的のライブラリ関数の関数ポインタを取得する。ネイティブコードにアクセスする過程で静的なバインディング、ヘッダファイル、またコンパイルは必要ない。アプリケーションの開発者はJavaのインターフェイスを用いて対象のネイティブライブラリの関数や構造体を記述する。これによって、JNIコードを記述しビルドする大きな労力をかけずにきわめて簡単にネイティブプラットフォームの機能を利用することができる。 Java Native Interface (JNI) は、Javaプラットフォームにおいて、Javaで記述されたプログラムと、他のプログラミング言語(たとえばCやC++など)で書かれた、実際のCPU上で動作するコード(ネイティブコード)とを連携するためのインタフェース仕様である。Java言語からネイティブコードを利用するためのABIと、逆にネイティブコードからJavaバイトコードを動作させるためにバーチャルマシン (VM) を利用するためのAPIの2つから成る。 JNIを使うことで、Java言語のVMで動作させるには処理速度の面で不利とされる計算量の多いプログラムを部分的にネイティブコードに置き換えて高速化したり、標準Javaクラスライブラリからはアクセスできないオペレーティングシステムあるいはハードウェアの機能を利用するプログラムを、あたかも通常のJavaクラスのメソッドのように呼び出したりできるようになる。逆に、Javaクラスライブラリによって実装されている高水準の機能を、C/C++などで書かれた下位層から利用することもできるようになる。JNIはJava言語以外のJava VM上で動作する言語 (AltJava) からも利用可能である。

Java Native AccessとJava Native Interface間の類似点

Java Native AccessとJava Native Interfaceは(ユニオンペディアに)共通で10ものを持っています: 単精度浮動小数点数倍精度浮動小数点数C言語JavaJavaプラットフォームLinuxMacOSMicrosoft WindowsP/InvokeUNIX

単精度浮動小数点数

情報処理において、単精度浮動小数点数 (たんせいどふどうしょうすうてんすう、single-precision floating-point number)は、コンピュータの数値表現の一種である。 本来の単精度浮動小数点数とは、倍精度浮動小数点数に対比して使われる用語であって倍精度浮動小数点数が無いシステムであれば単に浮動小数点数と呼ばれるべきものである(また浮動小数点数はもともと固定小数点数と対比させた言葉であった)。 そうして、単精度はシステムの基本となる精度であり、バイトマシン(キャラクターマシン)が普通になる前のワードマシンにおいて1語長分の記憶場所を占める浮動小数点数であるのが普通である。

Java Native Accessと単精度浮動小数点数 · Java Native Interfaceと単精度浮動小数点数 · 続きを見る »

倍精度浮動小数点数

は、64ビットの浮動小数点数表現である。 倍精度とは単精度に対する表現であり、これは32ビットを1ワードとする32ビットアーキテクチャをもとにしている。 のFORTRANでは、単精度(REAL型)よりも精度が高ければ倍精度(DOUBLE PRECISION型)を名乗ることができた(そもそもワードの長さも浮動小数点のフォーマットも機種ごとにまちまちだった)。IBMのSystem/360で採用され大型機の事実上の標準となった、指数の基数が16の浮動小数点形式は、32ビット単精度では最悪の場合の精度が十進で6桁程度となり、技術計算では倍精度以上を使わねばならないという問題があった。(注:FORTRANではREAL型が1ワード、DOUBLE PRECISION型が2ワードという前提だった) 浮動小数点算術に関する標準であるIEEE 754では、単精度は32ビット(4オクテット)、倍精度は64ビット(8オクテット)である。いずれにしろ、「倍」というのは、精度に関係する仮数部(後述)の長さが正確に2倍である、といったような意味ではなく、全体の長さが2倍である所から来ているので、実際の所「倍精度」というのはかなり大雑把な言い方に過ぎない。

Java Native Accessと倍精度浮動小数点数 · Java Native Interfaceと倍精度浮動小数点数 · 続きを見る »

C言語

C言語(シーげんご、C programming language)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発した汎用プログラミング言語である。英語圏では「C language」または単に「C」と呼ばれることが多い。日本でも文書や文脈によっては同様に「C」と呼ぶことがある。制御構文などに高水準言語の特徴を持ちながら、ハードウェア寄りの記述も可能な低水準言語の特徴も併せ持つ。基幹系システムや、動作環境の資源制約が厳しい、あるいは実行速度性能が要求されるソフトウェアの開発に用いられることが多い。後発のC++やJava、C#など、「C系」と呼ばれる派生言語の始祖でもある。 ANSI、ISO、またJISにより言語仕様が標準規格化されている。

C言語とJava Native Access · C言語とJava Native Interface · 続きを見る »

Java

Java(ジャバ、ジャヴァ)は、汎用プログラミング言語とソフトウェアプラットフォームの双方を指している総称ブランドである。オラクルおよびその関連会社の登録商標である。1996年にサン・マイクロシステムズによって市場リリースされ、2010年に同社がオラクルに吸収合併された事によりJavaの版権もそちらに移行した。 プログラミング言語Javaは、C++に類似の構文、クラスベースのオブジェクト指向、マルチスレッド、ガベージコレクション、コンポーネントベース、分散コンピューティングといった特徴を持ち、平易性重視のプログラム書式による堅牢性と、仮想マシン上での実行によるセキュリティ性およびプラットフォーム非依存性が理念とされている。

JavaとJava Native Access · JavaとJava Native Interface · 続きを見る »

Javaプラットフォーム

Javaプラットフォーム(ジャバプラットフォーム、英: Java Platform)は、Javaで記述されたプログラムの開発および実行を行うことのできるソフトウェア群の総称である。

Java Native AccessとJavaプラットフォーム · Java Native InterfaceとJavaプラットフォーム · 続きを見る »

Linux

Linux(リナックス、他の読みは#「Linux」の読み方で後述)とは、狭義にはUnix系オペレーティングシステムカーネルであるLinuxカーネルを指し、広義にはそれをカーネルとして周辺を整備したシステム全体のことをいう(GNU/Linuxも参照)。

Java Native AccessとLinux · Java Native InterfaceとLinux · 続きを見る »

MacOS

macOS(マックオーエス)は、Appleが開発・販売するMacのオペレーティングシステムである。当初の名称はMac OS X(マックオーエステン)で、のちにOS X(オーエステン)に改められていた(後述)。 技術的には直系ではないが、Classic Mac OS(Mac OS、System)の後継として、新たにBSD系UNIXをベースに開発された。

Java Native AccessとMacOS · Java Native InterfaceとMacOS · 続きを見る »

Microsoft Windows

Microsoft Windows(マイクロソフト ウィンドウズ)は、マイクロソフトが開発・販売するオペレーティングシステム (OS) の製品群である。グラフィカルユーザインタフェース (GUI) を採用している。Windows発売以前では高価なワークステーション(ハイエンドパソコンを上回る性能のデスクトップコンピュータ)でしか実現されていなかったマルチタスクやGUIを中心とした使い勝手の良さを、一般消費者が入手しやすい標準的な規格のパソコンに順次取り込んで行き、一般向けOSのシェアのほとんどを占めるに至り、今や大きな知名度を持つ。

Java Native AccessとMicrosoft Windows · Java Native InterfaceとMicrosoft Windows · 続きを見る »

P/Invoke

P/Invoke(Platform Invoke、プラットフォーム呼び出し)とは、.NET Frameworkにおける共通言語基盤 (CLI) の機能の一つであり、マネージコードから動的ライブラリ内のネイティブコードを呼び出すことを可能にするものである。受け渡しされるデータ型は、必要であればCLIによって適切に変換されるが、メタデータによってプログラマーが変換方法を指定することもできる。こうしたデータの変換をマーシャリングという。

Java Native AccessとP/Invoke · Java Native InterfaceとP/Invoke · 続きを見る »

UNIX

UNIX (ユニックス、Unix、)は、コンピュータ用のマルチタスク・マルチユーザーのオペレーティングシステムの一種である。 公式な商標は「UNIX」だが、商標以外の意味として「Unix」、またはスモールキャピタルを使用して「Unix」などとも書かれる。2007年に、「UNIX」の商標の所有者である標準化団体のThe Open Groupは、Single UNIX Specificationを完全に満たすと認証を受けたシステムのみが「UNIX」の商標を得られるとした。このためそれ以外のシステムは(ずっと以前から、AT&T版およびBSD以外を指して使われていた用語だが)「Unixシステムライク」または「Unixライク(Unix系)」と呼ばれるようになった。ただし The Open Groupはその呼称を気に入っていない。

Java Native AccessとUNIX · Java Native InterfaceとUNIX · 続きを見る »

上記のリストは以下の質問に答えます

Java Native AccessとJava Native Interfaceの間の比較

Java Native Interfaceが52を有しているJava Native Accessは、26の関係を有しています。 彼らは一般的な10で持っているように、ジャカード指数は12.82%です = 10 / (26 + 52)。

参考文献

この記事では、Java Native AccessとJava Native Interfaceとの関係を示しています。情報が抽出された各記事にアクセスするには、次のURLをご覧ください: