400 lines
16 KiB
HTML
400 lines
16 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||
|
<html>
|
||
|
<head>
|
||
|
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||
|
<title>IKVM.NET User's Guide</title>
|
||
|
<link type="text/css" href="../skin/page.css" rel="stylesheet">
|
||
|
</head>
|
||
|
<body text="#000000" bgcolor="#FFFFFF">
|
||
|
<!--================= start Navigation Path ==================-->
|
||
|
<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
|
||
|
<tr>
|
||
|
<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" src="../skin/images/spacer.gif" class="spacer"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
<!--================= end Navigation Path ==================-->
|
||
|
<!--================= start Banner ==================-->
|
||
|
<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
|
||
|
<tr>
|
||
|
<!--================= start Group Logo ==================-->
|
||
|
<td bgcolor="#294563"></td>
|
||
|
<!--================= end Group Logo ==================-->
|
||
|
<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://www.ikvm.net/"><img border="0" class="logoImage" alt="IKVM.NET" src="../images/project.gif" title="Java on .NET"></a></td>
|
||
|
<!--================= end Project Logo ==================-->
|
||
|
<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563"></td>
|
||
|
<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td valign="bottom" bgcolor="#294563" colspan="2">
|
||
|
<!--================= start Tabs ==================-->
|
||
|
<div class="tab">
|
||
|
<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
|
||
|
<tr>
|
||
|
<td width="6"><img alt="" height="8" width="6" src="../skin/images/spacer.gif"></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</div>
|
||
|
<!--================= end Tabs ==================-->
|
||
|
</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../skin/images/spacer.gif" class="spacer"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
<!--================= end Banner ==================-->
|
||
|
<!--================= start Menu, NavBar, Content ==================-->
|
||
|
<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
|
||
|
<tr>
|
||
|
<td valign="top">
|
||
|
<table summary="menu" border="0" cellspacing="0" cellpadding="0">
|
||
|
<tr>
|
||
|
<!--================= start left top NavBar ==================-->
|
||
|
<td rowspan="3" valign="top">
|
||
|
<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
|
||
|
<tr>
|
||
|
<td bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif"> </font></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</td>
|
||
|
<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
|
||
|
<!--================= start Menu items ==================-->
|
||
|
<div class="menu">
|
||
|
<ul>
|
||
|
<li>
|
||
|
<font color="#CFDCED">About</font>
|
||
|
<ul>
|
||
|
|
||
|
<li>
|
||
|
<a href="../index.html" title="">Home</a>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="../download.html" title="">Download</a>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="../uses.html" title="">Uses</a>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="http://weblog.ikvm.net" title="">News</a>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="http://weblog.ikvm.net/story.aspx/faq" title="">FAQ</a>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="http://weblog.ikvm.net/story.aspx/license" title="">License</a>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="../stories.html" title="">Case Studies</a>
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</li>
|
||
|
<li>
|
||
|
<font color="#CFDCED">User's Guide</font>
|
||
|
<ul>
|
||
|
|
||
|
<li>
|
||
|
<span class="sel"><font color="#ffcc00">Introduction</font></span>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="../userguide/install.html" title="">Installation</a>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="../userguide/tutorial.html" title="">Tutorial</a>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="../userguide/tools.html" title="">Tools Reference</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
</ul>
|
||
|
</li>
|
||
|
<li>
|
||
|
<font color="#CFDCED">Developer's Guide</font>
|
||
|
<ul>
|
||
|
|
||
|
<li>
|
||
|
<a href="../devguide/intro.html" title="">Introduction</a>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="../devguide/concepts.html" title="">Concepts</a>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="../devguide/net2java.html" title="">Using Java Libraries</a>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="../devguide/java2net.html" title="">Developing in Java</a>
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</li>
|
||
|
<li>
|
||
|
<font color="#CFDCED">Contributing</font>
|
||
|
<ul>
|
||
|
|
||
|
<li>
|
||
|
<a href="http://sourceforge.net/mail/?group_id=69637">Mailing Lists</a>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="http://sourceforge.net/tracker/?group_id=69637">Report Bugs</a>
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<a href="http://sourceforge.net/cvs/?group_id=69637">CVS Repository</a>
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
<!--================= end Menu items ==================-->
|
||
|
</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/menu-right.gif"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</td><td valign="top" width="100%">
|
||
|
<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
|
||
|
<!--================= start middle NavBar ==================-->
|
||
|
<tr>
|
||
|
<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
|
||
|
|
||
|
|
||
|
</font><img width="10" height="8" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
|
||
|
|
||
|
|
||
|
</font><img width="10" height="8" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
|
||
|
</tr>
|
||
|
<!--================= end middle NavBar ==================-->
|
||
|
<!--================= start Content==================-->
|
||
|
<tr>
|
||
|
<td align="left" width="10"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td colspan="2" align="left" width="100%">
|
||
|
<div xmlns:xhtml="http://www.w3.org/1999/xhtml" class="content">
|
||
|
<table class="title" summary="">
|
||
|
<tr>
|
||
|
<td valign="middle">
|
||
|
<h1>IKVM.NET User's Guide</h1>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
<ul class="minitoc">
|
||
|
<li>
|
||
|
<a href="#Introduction">Introduction</a>
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="#Overview">Overview</a>
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="#System+Requirements">System Requirements</a>
|
||
|
</li>
|
||
|
</ul>
|
||
|
|
||
|
<a name="N10016"></a><a name="Introduction"></a>
|
||
|
<h3>Introduction</h3>
|
||
|
<div style="margin-left: 0 ; border: 2px">
|
||
|
<p>IKVM.NET is a Java Virtual Machine (JVM) for the .NET and Mono runtimes. At a time when most people in the computer industry consider Java and
|
||
|
.NET as mutually exclusive technologies, IKVM.NET stands in the unique position of bringing them together.
|
||
|
Initially born out of frustration with the limitations of tools like JUMP and J#, IKVM.NET was created when Jeroen Frijters set out to
|
||
|
create a way to migrate an existing Java<sup>TM</sup> database application
|
||
|
to .NET<sup>TM</sup>.
|
||
|
</p>
|
||
|
<p>IKVM.NET has gone through a variety of designs and name changes to emerge as a sophisticated collection of tools offering a variety of integration patterns
|
||
|
between the Java and .NET languages and platforms. It is still under development but people have reported success in running sophisticated applications and tools
|
||
|
including Eclipse, JmDNS, JGroups, Jetty (with a few changes), etc.
|
||
|
</p>
|
||
|
<p>This manual is written for IKVM.NET version 0.36. </p>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<a name="N1002C"></a><a name="Overview"></a>
|
||
|
<h3>Overview</h3>
|
||
|
<div style="margin-left: 0 ; border: 2px">
|
||
|
<p>There are two main ways of using IKVM.NET:</p>
|
||
|
<ul>
|
||
|
|
||
|
<li>
|
||
|
|
||
|
<p>Dynamically: In this mode, Java classes and jars are used directly to execute Java applications on the .NET<sup>TM</sup> runtime.
|
||
|
Java bytecode is translated on the fly into CIL and no further steps are necessary. The full Java class loader model is supported in this mode.</p>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
|
||
|
<p>Statically: In order to allow Java code to be used by .NET applications, it must be compiled down to a DLL and used directly.
|
||
|
The bytecode is translated to CIL and stored in this form. The assemblies can be referenced directly by the .NET applications and
|
||
|
the "Java" objects can be used as if they were .NET objects. While the static mode does not support the full Java class loader mechanism,
|
||
|
it is possible for statically-compiled code to create a class loader and load classes dynamically.
|
||
|
</p>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
<p>
|
||
|
IKVM.NET provides the VM-related technologies for byte-code translation and verification, classloading, etc.
|
||
|
It is dependent upon the <a target="_blank" href="http://openjdk.java.net/">OpenJDK</a> project
|
||
|
for implementations of the JDK libraries.</p>
|
||
|
<p>IKVM.NET is comprised by the following components:</p>
|
||
|
<table class="ForrestTable" cellspacing="1" cellpadding="4">
|
||
|
<caption>IKVM.NET Components</caption>
|
||
|
|
||
|
<tr>
|
||
|
|
||
|
<th colspan="1" rowspan="1">Component</th>
|
||
|
<th colspan="1" rowspan="1">Description</th>
|
||
|
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
|
||
|
<td colspan="1" rowspan="1">IKVM.Runtime.dll</td>
|
||
|
<td colspan="1" rowspan="1">The VM runtime and all supporting code. It contains (among other things):
|
||
|
<ul>
|
||
|
|
||
|
<li>
|
||
|
<p>
|
||
|
Byte Code JIT compiler/verifier: Just-in-time compiles Java Byte Code to CIL.</p>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<p>
|
||
|
Object model remapping infrastructure: Makes System.Object, System.String and System.Exception appear to Java code as java.lang.Object, java.lang.String and java.lang.Throwable.</p>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li>
|
||
|
<p>
|
||
|
Managed .NET re-implementations of the native methods in Classpath.</p>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
|
||
|
</td>
|
||
|
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
|
||
|
<td colspan="1" rowspan="1">IKVM.OpenJDK.ClassLibrary.dll</td>
|
||
|
<td colspan="1" rowspan="1">This is a compiled version of the Java class libraries, plus some additional IKVM.NET specific code.</td>
|
||
|
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
|
||
|
<td colspan="1" rowspan="1">IKVM.AWT.WinForms.dll</td>
|
||
|
<td colspan="1" rowspan="1">Very limited and broken implementation of a few AWT peers. This is a low priority issue until the platform stabilizes and works sufficiently well.</td>
|
||
|
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
|
||
|
<td colspan="1" rowspan="1">ikvm.exe</td>
|
||
|
<td colspan="1" rowspan="1">Starter executable, comparable to java.exe ("dynamic mode").</td>
|
||
|
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
|
||
|
<td colspan="1" rowspan="1">ikvmc.exe</td>
|
||
|
<td colspan="1" rowspan="1">Static compiler. Used to compile Java classes and jars into a .NET assembly ("static mode")</td>
|
||
|
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
|
||
|
<td colspan="1" rowspan="1">ikvmstub.exe</td>
|
||
|
<td colspan="1" rowspan="1">A tool that generates stub class files from a .NET assembly, so that Java code can be compiled against .NET code. IKVM.NET understands the stubs and replaces the references to the stubs by references to the actual .NET types.</td>
|
||
|
|
||
|
</tr>
|
||
|
|
||
|
|
||
|
</table>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<a name="N100C4"></a><a name="System+Requirements"></a>
|
||
|
<h3>System Requirements</h3>
|
||
|
<div style="margin-left: 0 ; border: 2px">
|
||
|
<p>You must have one of the following .NET frameworks
|
||
|
installed:</p>
|
||
|
<ul>
|
||
|
|
||
|
<li>Microsoft .NET Framework 1.1 (or later) SDK (Windows platform)</li>
|
||
|
|
||
|
<li>Mono 1.2 (or later) (Windows or Linux)</li>
|
||
|
|
||
|
</ul>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
<div class="attribution">by Stephen Schaub, Brian J. Sletten</div>
|
||
|
</div>
|
||
|
</td><td width="10"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
|
||
|
</tr>
|
||
|
<!--================= end Content==================-->
|
||
|
</table>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
<!--================= end Menu, NavBar, Content ==================-->
|
||
|
<!--================= start Footer ==================-->
|
||
|
<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
|
||
|
<tr>
|
||
|
<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"><a href="../skin/images/label.gif"></a><a href="../skin/images/page.gif"></a><a href="../skin/images/chapter.gif"></a><a href="../skin/images/chapter_open.gif"></a><a href="../skin/images/current.gif"></a><a href="/favicon.ico"></a></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">
|
||
|
|
||
|
Send feedback about this page to <a href="mailto:webmaster@ikvm.net?subject=IKVM Website Feedback - Page userguide/intro.html">webmaster@ikvm.net</a>
|
||
|
<br>
|
||
|
|
||
|
Copyright ©
|
||
|
2008 Jeroen Frijters All rights reserved.<script type="text/javascript" language="JavaScript"><!--
|
||
|
document.write(" - "+"Last Published: " + document.lastModified);
|
||
|
// --></script></font></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
<!--================= end Footer ==================-->
|
||
|
</body>
|
||
|
</html>
|