538 lines
18 KiB
HTML
538 lines
18 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 Bytecode Compiler (ikvmc.exe)</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>
|
|
<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>
|
|
<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 Bytecode Compiler (ikvmc.exe)</h1>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p>The ikvmc tool converts Java bytecode to .NET dll's and exe's.</p>
|
|
<ul class="minitoc">
|
|
<li>
|
|
<a href="#Usage">Usage</a>
|
|
</li>
|
|
<li>
|
|
<a href="#Options">Options</a>
|
|
</li>
|
|
<li>
|
|
<a href="#Notes">Notes</a>
|
|
</li>
|
|
<li>
|
|
<a href="#Examples">Examples</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<a name="N1000F"></a><a name="Usage"></a>
|
|
<h3>Usage</h3>
|
|
<div style="margin-left: 0 ; border: 2px">
|
|
<table class="ForrestTable" cellspacing="1" cellpadding="4">
|
|
<tr>
|
|
<td colspan="1" rowspan="1">
|
|
|
|
<div class="pre"> ikvmc [ <em>options</em> ] <em>classOrJarfile</em> [ <em>classOrJarfile ...</em> ]</div>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<dl>
|
|
|
|
<dt>options</dt>
|
|
|
|
<dd>See below.</dd>
|
|
|
|
<dt>classOrJarfile</dt>
|
|
|
|
<dd>Name of a Java .class or .jar file. May contain wildcards (*.class).</dd>
|
|
|
|
</dl>
|
|
</div>
|
|
|
|
|
|
<a name="N1003A"></a><a name="Options"></a>
|
|
<h3>Options</h3>
|
|
<div style="margin-left: 0 ; border: 2px">
|
|
<table class="ForrestTable" cellspacing="1" cellpadding="4">
|
|
|
|
<tr>
|
|
|
|
<th colspan="1" rowspan="1">Option</th>
|
|
<th colspan="1" rowspan="1">Description</th>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-out:<em>outputfile</em>
|
|
</td>
|
|
<td colspan="1" rowspan="1">Specifies the name of the output file. Should have a .dll extension (if -target is library) or an .exe extension (if -target is exe or winexe).
|
|
In most cases, if you omit this option, ikvmc will choose an output name based on the -target and the
|
|
name of the input files. However, if you specify input files using wildcards, you must use
|
|
this option to specify the output file.</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-assembly:<em>assembly-name</em>
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
Specifies the name of the generated assembly. If omitted, the assembly name is (usually)
|
|
the output filename.
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-target:<em>target-type</em>
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
Specifies whether to generate an .exe or .dll.
|
|
<em>target-type</em> is one of
|
|
<ul>
|
|
|
|
<li>exe - generates an executable that runs in a Windows command window</li>
|
|
|
|
<li>winexe - generates an .exe for GUI applications</li>
|
|
|
|
<li>library - generates a .dll</li>
|
|
|
|
<li>module - generates a .netmodule</li>
|
|
|
|
</ul>
|
|
|
|
<p>On Linux, there is no difference between <em>exe</em> and <em>winexe</em>.</p>
|
|
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-keyfile:<em>keyfilename</em>
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
Uses <em>keyfilename</em> to sign the resulting assembly.
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-version:M.m.b.r
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
Specifies the assembly version.
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-main:<em>classname</em>
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
Specifies the name of the class containing the main method.
|
|
If omitted and the -target is exe or winexe, ikvmc searches
|
|
for a qualifying main method and reports if it finds one.
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-reference:<em>library-filespec</em>
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
If your Java code uses .NET API's, specify the dll's using this
|
|
option. This option can appear more than once if more than one library is referenced.
|
|
Wildcards are permitted (e.g. c:\libs\*.dll).
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-recurse:<em>filespec</em>
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
Processes all files matching <em>filespec</em> in and under the directory specified by
|
|
<em>filespec</em>. Example: -recurse:*.class
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-nojni
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
Do not generate JNI stub for native methods
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-resource:<em>name</em>=<em>path</em>
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
Includes <em>path</em> as a Java resource named <em>name</em>
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-exclude:<em>filename</em>
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
<em>filename</em> is a file containing a list of classes to exclude
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-debug
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
Generates debugging information in the output. Note that this is only helpful
|
|
if the .class files contain debug information (compiled with the javac -g option).
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-srcpath:<em>path</em>
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
Specifies the location of source code. Use with -debug. The
|
|
package of the class is appended to the specified <em>path</em> to locate
|
|
the source code for the class.
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-Xtrace:<em>name</em>
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
Displays all tracepoints with <em>name</em>
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="1" rowspan="1">
|
|
-Xmethodtrace:<em>methodname</em>
|
|
</td>
|
|
<td colspan="1" rowspan="1">
|
|
Builds method trace into the specified output method.
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
</div>
|
|
|
|
<a name="N1016E"></a><a name="Notes"></a>
|
|
<h3>Notes</h3>
|
|
<div style="margin-left: 0 ; border: 2px">
|
|
<p>The ikvmc tool generates .NET assemblies from Java class files and jar files.
|
|
It converts the Java bytecodes in the input files to .NET CIL. Use it to produce</p>
|
|
<ul>
|
|
|
|
<li>.NET executables (-target:exe or -target:winexe)</li>
|
|
|
|
<li>.NET libraries (-target:library)</li>
|
|
|
|
<li>.NET modules (-target:module)</li>
|
|
|
|
</ul>
|
|
<p>Java applications often consist of a collection of jar files. ikvmc can process several input jar files (and class files)
|
|
and produce a single .NET executable or library. For example, an application consisting of main.jar, lib1.jar,
|
|
and lib2.jar can be converted to a single main.exe. </p>
|
|
<p>When processing multiple input jar files that contain duplicate classes / resources, ikvmc will use the first
|
|
class / resource it encounters, and ignore duplicates encountered in jars that appear later on the
|
|
command line. It will produce a warning in this case. Thus, order of jar files can be significant.</p>
|
|
<div class="frame note">
|
|
<div class="label">Note</div>
|
|
<div class="content">
|
|
When converting a Java application with ikvmc, for best results, list the jars on the ikvmc command
|
|
line in the same order that they appear in the Java application's classpath.</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<a name="N1018D"></a><a name="Examples"></a>
|
|
<h3>Examples</h3>
|
|
<div style="margin-left: 0 ; border: 2px">
|
|
<div class="pre">
|
|
<span class="codefrag"> ikvmc myProg.jar </span>
|
|
</div>
|
|
<p>Scans myprog.jar for a main method. If found, an .exe is produced; otherwise, a .dll is generated.
|
|
</p>
|
|
<div class="pre">
|
|
<span class="codefrag"> ikvmc -out:myapp.exe -main:org.anywhere.Main -recurse:bin\*.class lib\mylib.jar</span>
|
|
</div>
|
|
<p>Processes all .class files in and under the bin directory, and mylib.jar in the lib directory. Generates an executable
|
|
named myapp.exe using the class org.anywhere.Main as the main method.</p>
|
|
</div>
|
|
|
|
<div class="attribution"></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/ikvmc.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>
|