291 lines
12 KiB
HTML
291 lines
12 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 Concepts</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://sourceforge.net/p/ikvm/wiki/FAQ/" title="">FAQ</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="http://sourceforge.net/p/ikvm/wiki/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>
|
|
<a href="http://sourceforge.net/p/ikvm/wiki/User%27s_Guide/">Introduction</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="http://sourceforge.net/p/ikvm/wiki/Installation/" title="">Installation</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="http://sourceforge.net/p/ikvm/wiki/Tutorial/" title="">Tutorial</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="http://sourceforge.net/p/ikvm/wiki/Tools/" 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>
|
|
<span class="sel"><font color="#ffcc00">Concepts</font></span>
|
|
</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 Concepts</h1>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p>This section discusses several important concepts about
|
|
the capabilities and limitations of IKVM.NET. </p>
|
|
<ul class="minitoc">
|
|
<li>
|
|
<a href="#Class+Loading">Class Loading</a>
|
|
</li>
|
|
<li>
|
|
<a href="#Debugging+Support">Debugging Support</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<a name="N10015"></a><a name="Class+Loading"></a>
|
|
<h3>Class Loading</h3>
|
|
<div style="margin-left: 0 ; border: 2px">
|
|
<p>IKVM.NET fully supports dynamic Java class loading, both in Java applications running in the ikvm
|
|
JVM, as well as in Java applications which have been converted to .NET CIL using ikvmc.
|
|
</p>
|
|
<a name="N1001E"></a><a name="Class+Loading+in+Dynamically+Interpreted+Java+Applications"></a>
|
|
<h4>Class Loading in Dynamically Interpreted Java Applications</h4>
|
|
<div style="margin-left: 0 ; border: 2px">
|
|
<p>When you run a Java application using ikvm, ikvm finds and loads Java .class files much like
|
|
other Java VM's. See the <a href="http://sourceforge.net/p/ikvm/wiki/Ikvm/">ikvm notes</a> for details.</p>
|
|
</div>
|
|
<a name="N1002C"></a><a name="Class+Loading+in+ikvmc-compiled+Java+Applications"></a>
|
|
<h4>Class Loading in ikvmc-compiled Java Applications</h4>
|
|
<div style="margin-left: 0 ; border: 2px">
|
|
<p>When you convert a Java application to CIL using ikvmc, it executes as "native" .NET code. Each .NET assembly will have its own
|
|
Java class loader instance (typically of the type ikvm.runtime.AssemblyClassLoader). This class loader will load classes using the following algorithm:</p>
|
|
<ol>
|
|
|
|
<li>The corresponding assembly is searched first. Thus, if the class exists in the assembly, it will be found there.</li>
|
|
|
|
<li>All assemblies directly referenced by corresponding assembly are searched.</li>
|
|
|
|
</ol>
|
|
<p>For more details see these two articles: <a href="http://weblog.ikvm.net/PermaLink.aspx?guid=4e0b7f7c-6f5d-42a3-a4d6-5d05a99c84ff">Class Loading Architecture</a>, <a href="http://weblog.ikvm.net/PermaLink.aspx?guid=375f1ff8-912a-4458-9120-f0a8cfb23b68">Writing a Custom Assembly Class Loader</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<a name="N1004A"></a><a name="Debugging+Support"></a>
|
|
<h3>Debugging Support</h3>
|
|
<div style="margin-left: 0 ; border: 2px">
|
|
<p>Java applications converted to CIL using ikvmc with the -debug option can be debugged using standard .NET / Mono debugging
|
|
tools. Remember to compile the Java source code using the appropriate debug option (javac: -g or jikes: -g:lines,vars,source).</p>
|
|
</div>
|
|
|
|
<div class="attribution">by Stephen Schaub</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 devguide/concepts.html">webmaster@ikvm.net</a>
|
|
<br>
|
|
|
|
Copyright ©
|
|
2002-2011 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>
|