問題タブ [jni4net]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Two way object passing with jni4net (was: Ignore Missing Class(es))
I am using jni4net to access Java code from within a C# application, and vice-versa. jni4net uses reflection to generate JNI code proxies, so obviously one of the limitations is that your Java and C# code have to compile in order to build proxies.
Unfortunately this can result in a catch-22 problem. Consider:
C# class X uses Java class Y
Java class Y uses C# class X
Neither can be compiled, so the well established workaround is to take one of the classes (either X or Y), strip it down to its bare signature and get it to compile and then generate the proxy from the compiled skeleton. You can then replace the stripped class with the original and go on your merry way.
This seems like an ugly approach to me and I believe there should be a better way. An obvious solution would be to tell the compiler (either C# or Java, it really does not matter which) to ignore references to the missing class.
Is ignoring references to a certain missing class feasible for either the C# or Java compilers? Is there a better way to do this (and no, I am not open to considering sockets or anything of that nature; I require true interop between .NET and Java)?
Example code was requested:
Example code with jni4net bridge code removed for clarity. IA and IB are simple interfaces also not included.
Java:
C#:
java - jni4net サンプルの検出
jni4netを発見しています。これは、Java と .NET の間のブリッジを提供するために使用されるテクノロジです。そこで、新しい Eclipse Java プロジェクトを作成し、サンプル コードを jni4net-0.8.6.0-bin/samples/myCSharpDemoCalc->MyCalcUsageInJava.java からこのプロジェクトにコピーしました。ただし、「mycsharpdemocalc.DemoCalc」と「mycsharpdemocalc.ICalc」の 2 つのインポートが見つからないため、コードをコンパイルできません。コードをコンパイルできるように mycsharpdemocalc.c を Java プロジェクトに統合/インポートする方法がわかりません。
java - 最良の選択。Javaアプリケーションで.NetDLLを使用する
これについていくつか質問があることは知っていますが、正確な回答は見つかりませんでした。依存関係やp/Invokeのない.Netdll(C#)があります。つまり、これは完全な.netプラットフォームライブラリです。クライアントの1人がJavaアプリケーションで使用したいと考えています。
最良の選択は何ですか?私は完璧な解決策になる可能性のあるjni4netを見てきましたが、.Netのジェネリックをサポートしていないようです(私たちのdllは多くのジェネリック辞書とコレクションを使用しています)
JNAが最良の選択ですか?
前もって感謝します
java - Windows での JNI および C 入門
私はJavaの学習が初めてで、初めてJNIを始めたいと思っています。そして、私は Cygwin を使用しており、次のように .java (Helloworld.java) 拡張子を持つファイルを作成しました。
次に、コマンド ライン ( javac Helloworld.java
) を使用してファイルをコンパイルし、コマンドを使用してネイティブ ヘッダー ファイルを作成します。javah –jni Helloworld
次に、次のように C ファイルを作成して実装します。
その後、コマンドを実行している間
Cygwin のコマンド プロンプト ラインにメッセージを表示する
実行方法とファイルを実行するためのパスを設定する手順は? どなたか助けてください。ありがとう。
c# - JavaアプリケーションでWPFライブラリを使用する際のスレッドの問題?
私は既存のC#WPFAPIをJavaアプリケーションとインターフェースさせようとしています。
これまでのところ、 jni4netを使用して、Javaと.NETコード間のインターフェイスとなるプロキシを生成することに成功しました。
この統合により、WPFUIの表示に関するSTAスレッドの問題が発生しました。
これは、ShowDialogを使用してWPFUIをロードするために次のパターンを使用することで解決されました。
ただし、WPF UIを使用しているときに、次のような例外が発生しています。マウスクリックまたはキーを押すと、次のエラーが発生する可能性があります(この例はマウスクリックによるものです)。
現在、この問題を解決し、スタックトレースから問題の原因を特定する方法がわかりません。
どんな助け/アドバイスも大歓迎です。
c# - System.IO.FileNotFoundException: myCSharpDemoCalc\work\MyCSharpDemoCalc.j4n.dll
jni4net は MyCSharpDemoCalc.j4n.dll を生成しません。generateProxy はそうすると言いますが、ファイルは作成されません。したがって、System.IO.FileNotFoundException が発生します。これは jni4net のバグですか? バージョン 0.8.6.0 を使用しています
D:\Temp\jni4net\samples\myCSharpDemoCalc\work>java -cp jni4net.j
-0.8.6.0.jar;MyCSharpDemoCalc.j4n.jar;. MyCalcUsageInJava Exception in thread "main" System.IO.FileNotFoundException:
D:\Temp\jni4net\samples\myCSharpDemoCalc\work\MyCSharpDemoCalc.j4n.dll at net.sf.jni4net.Bridge.LoadAndRegisterAssemblyFromClassLoader(File assemblyFile, ClassLoader classLoader) at net .sf.jni4net.Bridge.LoadAndRegisterAssemblyFrom(File assemblyFile)
at net.sf.jni4net.__Bridge.LoadAndRegisterAssemblyFrom3(IntPtr __envp, JniLocalHandle __class, JniLocalHandle assemblyFile) at net.sf.jni4net.Bridge.LoadAndRegisterAssemblyFrom(Native Method) at MyCalcUsageInJava.main (MyCalcUsageInJava.java:11)
他の誰かが同じ問題を抱えていましたか?
java - jni4net - System.Runtime.Remoting.RemotingException
Java / .NET ブリッジを使用してサーバーと通信しようとしています。ブリッジはjni4netで構築されており、動作しているようです (これまでのところ)。
何が問題なのか、まったくわかりません。このような問題を経験した人はいますか?
完全な例外スタック トレースは次のとおりです。
java - Eclipse のライブラリ プロジェクトから jar をエクスポートする
ライブラリ プロジェクトへの参照を含む動的 Web プロジェクトがあります。.war ファイルをエクスポートして、取得したメソッドを呼び出そうとすると、次のようになります。
org.jboss.resteasy.spi.UnhandledException: java.lang.NoClassDefFoundError: net/sf/jni4net/Bridge
.war ファイルを調べたところ、ライブラリ プロジェクトの jar ファイルがエクスポートされていませんでした。どうやってやるの?
ありがとう。
jni4net - xml 構成で JNI4NET proxygen を実行する際の問題
プロキシを生成しようとしています。サンプル xml を samples フォルダーからコピーして変更しました。
OS: Windows 8.1
Java バージョン: 1.7.0_45 (32 または 64 ビット)
JNI4NET バージョン: 0.8.6
コマンドライン: proxygen config.xml
config.xml:
私が得るエラー:
誰か助けてください...
ありがとう、アンドレアス