★お前らJavaはJNIで組もうぜ★

このエントリーをはてなブックマークに追加
774デフォルトの名無しさん:2011/04/29(金) 23:59:18.61
ソースコード
775デフォルトの名無しさん:2011/04/30(土) 00:27:38.02
>>774
具体的にどこにたくさんある?ググって出てきたの手当たり次第か?
776デフォルトの名無しさん:2011/04/30(土) 01:22:03.39
OpenJDKやHarmonyのランタイムライブラリのJNI部分はどうよ
777デフォルトの名無しさん:2011/04/30(土) 21:43:27.07
>>773
JavaTutorial
778デフォルトの名無しさん:2011/05/01(日) 10:25:17.20
>>777
英語読めるのか?すげーな

俺は全く分からん
779デフォルトの名無しさん:2011/05/01(日) 10:44:03.01
>>772
MS932 <=> UTF16 <=> UTF8 の2段で変換するから重いんですよね。
C++側をUTF16で組めばいいかな。

intとかcharプリミティブの配列も参照渡しできずに値コピーするしかない?
780デフォルトの名無しさん:2011/05/01(日) 10:51:24.76
GetPrimitiveArrayCritical ならコピーせずに済むかもしれないけれど制限が多いので注意が必要
781デフォルトの名無しさん:2011/05/01(日) 23:05:50.65
今やJNAの時代ですよ?
JNIなんて今時使ってんなよw
782デフォルトの名無しさん:2011/05/07(土) 18:48:54.63
>>780
C/C++からJava呼ぶときはそういうのがあるんだね。
JavaからC/C++呼ぶときに同様なものある?
783デフォルトの名無しさん:2011/05/07(土) 19:14:15.06
>>782
NewDirectByteBuffer使ってjava.nio.ByetBufferを受け取る。
どのタイミングでポインタが無効になるかの管理が杜撰だとバグの温床になるけどね。
784デフォルトの名無しさん:2011/05/07(土) 21:19:58.98
逆じゃね
785デフォルトの名無しさん:2011/05/12(木) 15:01:36.76
そもそもプログラムしてる時点でバグやメモリリークを見込んでおくべき。
完璧なアプリにであったこと無いもの。世の中のプログラマの大半はポンコツ。
786デフォルトの名無しさん:2011/05/22(日) 13:53:49.99
JNI、Cで組んでみたんだけどすげー面倒臭い…
ベターC的なノリでC++でやることについてどう思う?
787デフォルトの名無しさん:2011/05/22(日) 13:56:35.97
>>781
CからJVMにアクセスする場合はどうすんの?
788デフォルトの名無しさん:2011/05/22(日) 14:04:49.62
なぜJava狂信者はJavaがC#よりも優れていると言うのか

JNI使ったらJavaのアドバンテージ無いだろ
789デフォルトの名無しさん:2011/05/23(月) 19:15:56.30
jniでc#を下請けに使える。
790デフォルトの名無しさん:2011/05/24(火) 02:24:33.35
そもそもJNIなんて仕方なく使うもんだろ
java、C#優劣論争なんて他所でやれw
791デフォルトの名無しさん:2011/05/24(火) 11:07:14.14
>>788
無料だからじゃない?
792デフォルトの名無しさん:2011/05/28(土) 22:48:42.86
むしろ積極的に使って楽しんでる。
cの世界、javaの世界だけで済ませるのでは選択肢少ないし。
javaで描かれたデバドラやosなんて無いし、cで描かれた移植性の高いアプリも無い。

男だけの会社とか女だけの会社が無いのと同じ。それぞれに剥いた仕事させれバいいじゃないの。バカと挟みは使い用。所詮目的を達成する手段にすぎない。
793デフォルトの名無しさん:2011/05/28(土) 23:02:02.78
にほんごでおk
794デフォルトの名無しさん:2011/05/29(日) 10:30:54.03
やっぱりここの人たちは皆JNI使いか?JNAとか使っている人いるの?JNAeratorとか使いやすくないのか?
795デフォルトの名無しさん:2011/05/31(火) 21:07:45.86
ネイティブのメソッドにJavaのクラスを入れて、メソッド内で削除してメモリ解放したら
ガーベージコレクトは走らないという事なのかな?
796デフォルトの名無しさん:2011/05/31(火) 21:56:02.37
JNI上で作成したオブジェクトは別メモリ管理だからしっかりガベッジコレクタの対象になるとおもうよ
でも、使用方法誤るとEJBみたいにVMが暴走する
797 【東電 63.6 %】 忍法帖【Lv=2,xxxPT】 :2011/06/01(水) 00:56:12.10
そこはそういうもんだな。糊で張り合わせて動かしてるものだし。ウマく動くほうが奇跡的w
ちゃんとメモリ喰い潰しを検出して定期的に再起動かます様な運用で対処してる。原発に津波じゃないけど予め想定しておけば対処方法は有る。
cでもメモリリークしまくってる屑アプリはいくらでもあるし。
798デフォルトの名無しさん:2011/06/01(水) 09:40:00.81
なるほど、JNI側のメモリとJava側のメモリは別々に考える必要があるのですか
ちょっとしたメソッドをネイティブにするくらいなら大丈夫そうだけど、
クラスとか大きいものをネイティ管理するのは大変そうだ
799デフォルトの名無しさん:2011/06/10(金) 01:27:39.63
Java→Native(C言語)の呼び出しで、引数に文字列領域設定して
Native側でそこに文字列設定するのってどうやるんですか?
(Native関数のポインタ渡しみたいなイメージ)
#Native側でのSetObjectArrayElementによる文字列配列渡しなら見つけたんですが。。。
800デフォルトの名無しさん:2011/06/10(金) 07:27:48.32
普通にchar[]とかbyte[]渡して設定して貰うんじゃダメなん?
java.nio.CharBufferとかjava.nio.ByteBufferでもいいけど。
801デフォルトの名無しさん:2011/06/10(金) 23:20:38.51
>>799
配列渡し以外の何を期待してるの?
802デフォルトの名無しさん:2011/06/12(日) 00:25:53.72
そこはjavaとcは別の世界だから、欲しいデータがあれば直接中身をやり取りしないと駄目なんじゃない。
cpuのコアが違って、レジスタ参照が出来ない様な感じ。一旦バス経由で自分の世界に持って来ないと使いにくい。
ハードウェアのnumaみたいな共有メモリで性能を稼ぐ様な実装はまだjniには無いかと。ぐぐってもmmap共有しちゃうような実装は無さそう。
803デフォルトの名無しさん:2011/06/12(日) 00:29:33.62
java.nio.ByteBuffer#allocateDirect()すりゃいいだけだな。
804デフォルトの名無しさん:2011/06/12(日) 04:43:15.17
StringBufferっていう便利なクラスがあるのを知らんのか?
805デフォルトの名無しさん:2011/06/12(日) 16:34:22.96
そのレベルの人が触っちゃいけないもんだがな〜
趣味マが無駄にパフォーマンス気にしてどっかで騙されて来てんのかね?
806デフォルトの名無しさん:2011/06/14(火) 13:52:13.50
Eclipsからさっくりnativeのヘッダ作ったり、JNIのコンパイルする方法って無いでしょうか
807デフォルトの名無しさん:2011/06/15(水) 00:28:40.11
ant使えばできないことはない
808デフォルトの名無しさん:2011/06/15(水) 00:50:21.05
>>804
それ>>799への回答
809デフォルトの名無しさん:2011/06/17(金) 08:41:03.14
できないことはない。ということは鉄板の方法は特にないと言うことですか
やっぱ、ちょっとハードル高いなぁ
810天使 ◆uL5esZLBSE :2011/07/03(日) 05:01:28.09
これ ; デリミタっていうんだけどさ、これをつけなきゃエラーになるような
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど

もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ

ゴミって意味わかってんのかなこいつら
811デフォルトの名無しさん:2011/07/04(月) 00:40:31.50
これ。句点っていうんだけどさ、これをつけずに文章が成立するような
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど。

もしかして「。」これ打たずに文章の終わりにするのが楽しいの?
そうか、二度と話かけんなよ。

ゴミって意味わかってんのかなこいつら。
812天使 ◆uL5esZLBSE :2011/07/05(火) 06:24:36.31
>>807
∨∨∨∨∨∨∨∨
(((((( ant使えばできないことはない ))))))(きリッッ!!ッッッッ!
∧(キリッッッッ!!!
でもお前はゴミなのにねw
813デフォルトの名無しさん:2011/07/05(火) 18:28:43.58
JavaからC系を呼べるのは良いとして、そのCからJava側のサービスを使いたい時は、手段はあるの?

例えば音を鳴らすAPIがJavaにしかない処理系とかで、C側の処理の途中で音を鳴らしたくなった時とか。
814デフォルトの名無しさん:2011/07/05(火) 20:38:37.15
あるよ
815デフォルトの名無しさん:2011/07/11(月) 00:58:43.30
JNAerator使っているやついる?

便利?
816デフォルトの名無しさん:2011/07/27(水) 18:15:13.68
今日JNIの本を買おうか買うまいか迷ってしまった。古い本ではあるが、

何回も刷られているから良書なのかな?
817デフォルトの名無しさん:2011/07/27(水) 20:20:22.51
買ったらレポよろ
818デフォルトの名無しさん:2011/12/25(日) 03:09:56.89
819デフォルトの名無しさん:2012/04/12(木) 15:12:38.02
過疎ってるな。androidやってる連中が書き込んでるかと思ったが。
820デフォルトの名無しさん:2012/04/12(木) 20:59:36.31
板的に情報書き込みにくる人が少なくなったと思うから、ここも同じく。
821デフォルトの名無しさん:2012/04/21(土) 00:45:54.80
jni自体に語るほどの内容がないよね
単にシェアードライブラリやdllのインターフェース
定義してるだけだし、業務資料作った事あるけど
A4用紙一枚半で十分だった。
822デフォルトの名無しさん:2012/05/22(火) 07:52:46.60
板どころじゃなくてにちゃんごとだな。
にちゃんにくるより他所の無料サイトのほうが詳しい人や中の人そのものが答えてくれたり。
元々オープンソースで誰が作ってるかモロバレだったしユーザ会繋がりも密だったから、わざわざ制限が多くて印象悪い匿名掲示板の価値が消失しちゃってる。
単純に無関係な規制に巻き込まれて、情報提供車が逃げ出しちゃったってのも大きいだろうけど。
若い人ほど、にちゃんから離れて各種snsで満足してるのも学生とかの新規参入が減って過疎高齢化招いてる要素か。
京大の入試問題を知恵袋で聞いてるなんて象徴的だったし。若者ほど、もうにちゃんの存在意義失ってる。


情報というか書き込みがコンテンツなんだから、書き込み減ればにちゃんの価値が下がるのは自明だしな。それを書き込ませない規制で加速させてたらそりゃ氏ぬ輪。

処理自体はjniライブラリを介して伝言ゲームしてるのとな時だしな。
福島原発ー東電ー経産省ー官邸ー総理
と同じ様に
javaのクラスーjnixライブラリーcライブラリ
で伝言ゲームしまくってる。
使い方だけ示せば、あとは呼び出す側のapiやクラスの仕様そのまんまだし。
もう少し進めて、どういう用途か絞り込めれば、包んで呼び出す側のクラスやapiの仕様に合わせてしまって使いやすく用意もできる。

アンドロイドはまだ混沌としすぎてるから、手を出しにくいんじゃない。
nexsus oneとかギャラネクみたいな特定機種で動けばいいだけならばりばりjnixで呼びまくってもいいだろうけど、
逆に国内機種とか搭載アプリの特定ハード向けの作り込みでは、バリバリ多様化されているんじゃない。べつにjniしなくてもcで全部作っちゃってもいいかもしれないけど。
823デフォルトの名無しさん
日本語でおか