Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/ikvm-fork.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'website/build/site/devguide/concepts.html')
-rw-r--r--website/build/site/devguide/concepts.html291
1 files changed, 291 insertions, 0 deletions
diff --git a/website/build/site/devguide/concepts.html b/website/build/site/devguide/concepts.html
new file mode 100644
index 00000000..00884335
--- /dev/null
+++ b/website/build/site/devguide/concepts.html
@@ -0,0 +1,291 @@
+<!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 Manual: 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">&nbsp;</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="../faqdoc.html" title="">FAQ</a>
+</li>
+
+<li>
+<a href="../license.html" title="">License</a>
+</li>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">User's Guide</font>
+<ul>
+
+<li>
+<a href="../userguide/intro.html">Introduction</a>
+</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>
+<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/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">
+ &nbsp;
+
+ </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">
+ &nbsp;
+
+ </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 class="content">
+<table class="title" summary="">
+<tr>
+<td valign="middle">
+<h1>IKVM.NET User Manual: 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="../userguide/ikvm.html">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. Applications that
+ use the Java classloading API (<span class="codefrag">Class.forName( )</span>, and so forth) locate classes using the following algorithm:</p>
+<ol>
+
+<li>All loaded assemblies are searched first. Thus, if the class exists in the .exe or any referenced dll's,
+ it will be found there.</li>
+
+<li>If the class is not in a loaded assembly, the CLASSPATH is searched for a Java .class. If found, it is dynamically loaded
+ and executed using the IKVM interpreter.</li>
+
+</ol>
+<p>This approach means you can develop .NET applications in Java that execute at native .NET speeds, but enjoy the flexibility
+ of dynamic class loading at runtime. For example, you can write a .NET application that loads type-4 JDBC drivers dynamically.</p>
+<p>For the most part, all of this works the way you want without much thought on your part. But there are a few situations
+ that will require special handling. Consider, for example, an application that has been compiled by ikvmc into several assemblies, A.exe, B.dll, and C.dll.
+ A.exe references B.dll, but neither A.exe nor B.dll reference C.dll directly (perhaps C.dll is a JDBC driver).
+ If code in A.exe uses Class.forName( ) to load a class in B.dll, everything is fine.
+ But if code in A.exe or B.dll uses Class.forName( ) to load classes in C.dll, things are not fine. Since neither A.exe nor B.dll references
+ C.dll, it will not have been loaded into the application domain at runtime, and the application will fail with a Class Not Found
+ runtime exception.</p>
+<p>In cases like this, your application must force the runtime to load an assembly into the application domain before calling
+ Class.forName( ). To do this, call <strong>TODO: Insert API method here</strong>.</p>
+</div>
+</div>
+
+
+<a name="N1004F"></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&nbsp;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">Copyright &copy;
+ 2004&nbsp;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>