System.Web用のスタブを作成し、自分のJavaコードでHttpContextを使用して使用できるようにします。System.Webの作業用ikvmstubを作成するには
フォルダ構造
- プログラム[フォルダ]
- のiKVM-7.0.4335.0 [フォルダ]
- compile.bat
- test.java :私は、次の試してみました
- IKVM.OpenJDK.Core.dll
- IKVM.Runtime.dll
Javaクラスtest.java
import cli.System.Web.HttpContext;
public class test
{
public static void main(String args[])
{
HttpContext.get_Current().get_Items().get_Item("MyKey");
System.out.println("Hello World!");
}
}
コンパイル
ikvm-7.0.4335.0\bin\ikvmstub mscorlib
ikvm-7.0.4335.0\bin\ikvmstub System.Web
javac test.java -classpath mscorlib.jar;System.Web.jar
ikvm-7.0.4335.0\bin\ikvmc -target:exe -reference:System.Web.dll test.class
test.exe
pause
compile.bat私はそれcompile.bat実行した場合の出力は以下となります。
Warning IKVMC0100: class "cli.System.Collections.IDictionary" not found Link Error: Method "cli.System.Web.HttpContext.get_Items()Lcli.System.Collection s.IDictionary;" has a return type "cli.System.Collections.IDictionary, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" instead of type "cli.System.Collections.IDictionary (unknown assembly)" as expected by "test "
"C:¥Program Files(x86)¥Reference Assemblies¥Microsoft¥Framework.NETFramework¥v4.0¥System.Web.dll"のスタブを直接作成しようとしましたが、このエラーが発生します。
Error: unable to load assembly 'C:\Program Files (x86)\Reference Assemblies\Micr osoft\Framework.NETFramework\v4.0\System.Web.dll' as it depends on a higher version of mscorlib than the one currently loaded
そして私は "C:\プログラムファイル(x86の)\リファレンスアセンブリ\マイクロソフト\ Framework.NETFramework \ V4.0の\のがmscorlib.dll" のスタブを作成しようとしました:
をikvmstub "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\mscorlib.dll" Warning: assembly "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framewo rk.NETFramework\v4.0\mscorlib.dll" is ignored as previously loaded assembly "C: \Windows\Microsoft.NET\Framework64\v2.0.50727\mscorlib.dll" has the same identit y "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
誰もこれを試して成功しましたか?