問題タブ [ikvm]
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 - IKVMとライセンス
.NETアプリで使用するIKVMingApacheのFOPプロジェクトを調べています。これは商用製品であり、ライセンスを検討していると、IKVMはGNU Classpathを使用しているため、いくつかの厄介な領域に遭遇します。私が見たところ、このようなものが商品に使用できるかどうかは誰にもわかりません。商用製品でIKVMまたはIKVMの製品を使用した人はいますか?これが私がこれまでに見つけたものです:
IKVMライセンスページ。1つのdllに他のプロジェクトのコードが含まれていること、それらのライセンスGPLv2 + Classpath Exception
Saxon for .NETはIKVMで生成されますが、Apacheライセンスの下でリリースされます...
誰もがこれを経験したことがありますか?
java - IKVMのBufferedImage
BufferedImage
IKVMで.NETに変換しているJavaプロジェクトの不足している機能を置き換えるための最良および/または最も簡単な方法は何ですか?
アプリケーションの実行時に基本的に「cli.System.NotImplementedException
:BufferedImage」例外が発生しますが、それ以外の場合は正常に実行されます。
c# - IKVM を Visual Studio 2008 でビルドするにはどうすればよいですか?
http://sourceforge.net/cvs/?group_id=69637からIKVM ソース ( http://www.ikvm.net/ )をダウンロードしました。
現在、Visual Studio 2008 でビルドしようとしていますが、行き詰っています。物を構築する方法のドキュメントを知っている人はいますか?
すべてのプロジェクトを開く ikvm8.sln を開こうとしましたが、ソリューションをビルドしようとすると、一連の「型または名前空間が見つかりませんでした」というエラーが発生します。
ご想像のとおり、私は Visual Studio の専門家ではなく、Eclipse で Java を操作することに慣れています。
繰り返しますが、Visual Studio で IKVM を構築する方法に関する詳細な手順またはドキュメントへのリンクを探しています。
さらに情報が必要な場合はお知らせください。助けてくれてありがとう!
編集:マニュアル「MsBuild.exe IKVM8.sln」も試しましたが、次のようなものもたくさんあります:
編集#2:「ikvm.build」ファイルに気付いたので、フォルダーにnantをダウンロードして実行しました。これにより、さらに一歩前進しました。いくつかのものが正常にビルドされ始めましたが、残念ながら次のエラーが発生しました。
ikvm-ネイティブ-win32:
編集#3:OKcl.exe
は、パスを入力することで解決しましたが、それでも他のエラーが発生します。これはすべて、Nant などを使用してコンソール上でビルドするためのものであることに注意してください。Visual Studio でビルドする方法はありませんか? それは悲しいだろう...
編集 #4 : 次のステップは GNU クラスパス 0.95 のインストールでしたが、特定の OpenJDK インストールが必要なようです... Linux AMD64?!
編集#5:著者から回答を得ました。以下またはhttp://weblog.ikvm.net/CommentView.aspx?guid=7e91b51d-6f84-4485-b61f-ea9e068a5fcfを参照してください。 動作するかどうか見てみましょう...
編集 #6私が恐れていたように、次の問題:「windows.h を開けません」、こちらの別の質問を参照してください。
最終編集: 解決策が見つかりました! Lib および Path 環境変数で Platform SDK フォルダーを取得した後、以下で説明するソリューションが機能しました。
c# - 致命的なエラー C1083 - インクルード ファイルを開けません: "windows.h": そのようなファイルまたはディレクトリはありません
IKVM をビルドしようとしています (この質問を参照してください) が、IKVM とは関係のない問題が発生したため、新しい質問を開きます:
Visual Studio 2008 コマンド プロンプト ([スタート] メニューから) を使用して IKVM ディレクトリで nant を実行すると、次のエラーが発生します。
Platform SDK をインストールしました。私は何が欠けていますか?確かに単純な物だと思います...
編集 #1チェックしたところ - パスに windows.h を含むディレクトリがあります。 編集#2答えが見つかりました(以下の私の答えを参照してください):windows.hを含むディレクトリは、「インクルード」パス変数にある必要がありました。
xml - IKVM のリマップ XML ファイルの形式は何ですか?
この記事でJeroen は、XML ファイルを使用して Java Bean のゲッターとセッターを .NET プロパティに再マップする例を説明しています。
たとえば、 .NET で呼び出さshowDialog()
れた Java メソッドを再マップしたい場合、XML ファイルはどのようになりますか? ShowDialog()
以前に再マッピング オプションを使用したことがある人はいますか? remapper.csソースコードを検査する以外に、どのように機能するかについての情報をどこで入手できますか?
編集 #1 - 間違いなく少し役立つものを見つけました: OpenJDK フォルダー内のmap.xmlファイルは同じ形式のようです。
編集#2痛い。16 時間で 7 回の視聴。:-) 私は正式に SO 知識の限界に到達しました... ;)
asp.net - IIS への展開時に ASP.NET アプリケーションが壊れる
オンライン ショッピング用の小さな ASP.NET Web サイトを開発しています。Visual Studio でテストするとすべて正常に動作しますが、IIS に展開するとうまくいきません。
この問題は、参照している DLL ファイルにあるようです。この DLL ファイルには、初期化してすべての製品情報を持つ別のサーバーにクエリ要求を送信するために必要なクラスが含まれています。この DLL は、元々は IKVM を使用して DLL に変換した Jar ファイルでした。
アプリを IIS にデプロイすると、その DLL で定義されたオブジェクトをインスタンス化しようとするページは、null 参照で失敗します。次に例を示します。
このエラーを返します:
System.NullReferenceException
: オブジェクト参照がオブジェクト インスタンスに設定されていません。でFulfiller.toLog(String )
でFulfiller.initialize(String str1, Int32 i, String str2, String str3)
でOrders.createDataSource()
繰り返しますが、これは VS 開発サーバーでは完全に機能しますが、IIS では機能しません。その理由はわかりません。IIS で実行しているときに DLL が正しく読み込まれないのは、何らかのコーディング上の問題ですか? または、IIS の問題で、DLL の実行やリクエストの送信をブロックしている可能性があります。この問題を解決するために非常に必死です。
ありがとう
java - .NET は Java の GlyphVector と同等または代替ですか?
IKVMを使用して Java プログラムを .NET に移植中です。残念ながら、IKVM の Graphics2D 実装は drawGlyphVector でNotImplementedExceptionをスローします。つまり、.NET 実装で (または実装されている他の IKVM Graphics2D メソッドの呼び出しに減らすことによって) 「肉付け」する必要があります。
IKVM でそのメソッドの実装を提供するために使用できる .NET の同等のアイデアはありますか?
編集#1:私の最初の予感は、単に呼び出しGlyphVector.getOutline()
てからその形状を埋めることでした. 残念ながら、getOutline()
独自のNotImplementedException
.
さて、私はそれ自体に代わるものを探しているようですGlyphVector
:NetGlyphVector、のIKVMバージョンGlyphvector
は基本的に、現在NotImplementedExceptionsをスローしているほぼすべてのメソッドを持つ単なるスタブクラスです...
では、Java のクラスに相当する .NET を知っている人はいますか?GlyphVector
c# - IKVMおよびSystem.CoreSystem.Runtime.CompilerServices.ExtensionAttribute
最新リリースのIKVMを使用して、Java.jarファイルを.NETDLLに「コンパイル」しています。それはすべてうまくいきました、そして今私は.NET 3.5 C#プロジェクトでDLLを参照しようとしています。
私のC#プロジェクトでは、文字列の拡張メソッドを使用して静的な「StringExtensions」クラスを作成しました。
何らかの理由で、これは昨日は機能しているように見えましたが、今日、拡張クラスでビルドエラーが発生しています(昨日はどのように機能したかわかりません...)。
また、ビルドの警告もあります。
IKVM.Runtime.dllとSystem.Core.dll(3.5バージョン)の両方が同じタイプであることがわかりました:「System.Runtime.CompilerServices.ExtensionAttribute」
名前空間は同じなので、これをSystem.CoreバージョンのExtensionAttributeでコンパイルするにはどうすればよいですか(またはこれを修正するにはどうすればよいですか)。
ありがとう
.net - キャスターと IKVM
Java で記述された API を IKVM を使用して .net dll に変換しましたが、これまでのところ問題はありません。
基本的に、バックグラウンドで xml を使用して一部の Web サービスにアクセスします。API はサード パーティであり、ソース コードにはアクセスできません。APIはCastorを使用して(私は信じています)xmlをオブジェクトにバインドします。
しかし、API のより便利な部分を使い始めたとき、キャスターに問題が発生しました。私の特定のエラーは次のとおりです。
「ネストされたエラー: org.exolab.castor.mapping.MappingException: クラスが見つかりませんでした ...」
上記のクラスは API の一部です。ウェブを精査すると、キャスターとは別のアセンブリにあるため、キャスターはクラスにアクセスできないようです。
私の問題は、Java のクラスローダーについて十分に理解していないことです。おそらく、IKVM について十分に理解していないため、これを整理することもできません。
IKVM を Castor (または Java クラスでリフレクションを使用する可能性のある他のライブラリ) と一緒に使用し、以前にこの問題に遭遇した人はいますか?
java - 別のアセンブリからの型の逆シリアル化中のクラスの読み込みに関する問題
2 つのアセンブリがあります
。1) シリアライザーを含むアセンブリ。これは、シリアライゼーションとデシリアライゼーションが開始される場所です。
2) シリアル化された型を含むアセンブリ。これは、最初のアセンブリからシリアライザを呼び出している場所です。
assembly1 のシリアライザーの考え方は単純です。バイト配列との間のオブジェクトの変換に使用される 2 つのメソッドがあります。そのシリアライザーのクライアント コードは次のようになります。
MyClass は assembly2 で定義されているため、assembly1 はそれについて何も知りません。このシナリオは、シリアライザーが次のように標準の .Net クラスで実装されている場合に機能します。
MyClass のシリアル化された形式には、MyClass が定義されているアセンブリに関する情報が含まれます。ただし、(IKVM で変換された) Java のクラスを使用してシリアライザーが実装される場合、逆シリアル化中に ClassNotFound 例外がスローされます。これは、Java クラスを使用したシリアライザーの実装です。
これは .Net では機能しませんが、BuddyPolicy や RegisterBuddy などのプラグイン マニフェストに追加のエントリを指定して Eclipse からロードした場合、Java では正常に機能します。JavaSerializer から DotNetSerializer に切り替えることはできません。私のアプリケーション (ほとんどが Java で記述されている) には、readObject、writeObject、readResolve などがたくさんあるためです。 . 現在、いくつかの仮説的な解決方法があります。
- ObjectOutputStream のいくつかのメソッドをオーバーロードするため、MyClass のシリアル化された形式には、「MyClass、MyAssembly、...」などのアセンブリ名も含まれます。
- ObjectInputStream でいくつかのメソッドをオーバーロードするため、クラスは別の方法でロードされます。おそらく、別のアセンブリで検索する必要があります。
- IKVM が MyClass を検索する場所を認識できるように、アセンブリ マニフェストにいくつかの情報を追加します。これの何かは本当ですか?この問題はどのように解決されるべきですか?