Если вы хотите запустить свой Java-код в .NET (или Mono), это можно сделать с помощью IKVM .
Поскольку (насколько мне известно) текущие компиляторы Java не читают сборки .NET, есть 2 шага. Сначала вам нужно создать заглушку JAR , содержащую фиктивные классы и методы с сигнатурами сборки .NET, которую вы хотите использовать, чтобы javac
(или ваша IDE) знали, какие методы доступны. Например, если вы хотите использовать что-то в основной стандартной библиотеке .NET из Java, запустите
ikvmstub mscorlib
, который генерирует заглушку mscorlib.jar
. (Он обнаружил сборку Mono mscorlib.dll
для меня автоматически под Linux, но если она не удалась, вам, возможно, придется указать полный путь к DLL.)
Затем вы можете написать файл Java, который его использует, например, ( на основе примера из документации IKVM ):
import cli.System.IO.Directory;
public class IKVMTest {
public static void main(String[] args) {
for(String file : Directory.GetFiles(".")) // From .NET standard library
System.out.println(file); // From Java standard library
}
}
Обратите внимание, что к пакетам CLI добавляется cli.
, следовательно, импорт cli.System
вместо System
.
Для компиляции включите заглушку JAR в classpath:
javac -classpath mscorlib.jar IKVMTest.java
Поскольку связывание Java происходит во время выполнения, в выходных файлах class
используются методы нужных имен и сигнатур, но вы можете заменить пустые методы-заглушки настоящими методами .NET при запуске под IKVM:
ikvm IKVMTest
и он будет печатать файлы в текущем каталоге, вызывая методы .NET.