Почему IKVM не поддерживает библиотеку Jython?

У нас есть огромный Java-проект, и мы решили перенести часть его в.NET (GUI и т. Д.). Для ускорения процесса мы используем IKVM (JVM для.NET). В большинстве случаев это работает нормально, но когда я дохожу до кода Jython, он застревает, а затем выдает исключение java.lang.NoSuchMethodException и после PyException, Это происходит в рамках метода PythonInterpreter.interpreter.exec, Даже для простого примера:

Джава:

class Main {
    public static String printIt() {
            PythonInterpreter pi = new PythonInterpreter();;
            pi.set("integer", new PyInteger(122));
            pi.exec("result = integer * integer");
            pi.exec("print('hello!')");
            return  "hello";
        }
}

C#:

var code = Main.printIt();

Какое ограничение или ограничение вызывает исключения? В общем, где найти все ограничения IKVM (уже много искал, ничего относящегося к этому делу не нашел). Благодарю.

ОБНОВЛЕНИЕ: Использование IKVM 8.1 и jython-standalone-2.5.3, JDK 1.8, .NET 4.5

Вот трассировка стека:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "src_python\Util.py", line 2, in <module>
    from com.trueship.jyinterface import PyUtil
  File "src_python\Util.py", line 2, in <module>
    from com.trueship.jyinterface import PyUtil
    java.lang.NoClassDefFoundError: junit.framework.TestCase
    at Java_java_lang_ClassLoader.defineClass1(Unknown Source)
    at IKVM.Internal.AssemblyClassLoader.DefineDynamic(Unknown Source)
    at IKVM.Internal.AssemblyClassLoader.LoadDynamic(Unknown Source)
    at IKVM.Internal.AssemblyClassLoader.LoadClassImpl(Unknown Source)
    ...
    at org.python.core.Py.runCode(Py.java:1275)
    at org.python.core.Py.exec(Py.java:1319)
    at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:207)
    at com.trueship.jyinterface.Jyb.findClass(Jyb.java:113)
    at com.trueship.jyinterface.Jyb.initUtil(Jyb.java:90)
    at com.trueship.jyinterface.Jyb.<init>(Jyb.java:77)
    at com.trueship.jyinterface.Jyb.getInstance(Jyb.java:102)
    at com.trueship.cordage.orders.JSONOrderParser.parseOrder(JSONOrderParser.java:41)
    at   com.trueship.cordage.readycloud.ReadyCloudApiClient.getOrders(ReadyCloudApiClient.java:302)
    at com.trueship.cordage.readycloud.ReadyCloudApiClient.downloadOrders(ReadyCloudApiClient.java:264)
    at cli.ReadyShipper.Windows.MainWindow.DownloadOrders(MainWindow.xaml.cs:75)
    at cli.ReadyShipper.Windows.MainWindow.<.ctor>b__1(MainWindow.xaml.cs:49)
    at cli.System.Windows.RoutedEventHandlerInfo.InvokeHandler(Unknown Source)
    at cli.System.Windows.EventRoute.InvokeHandlersImpl(Unknown Source)

0 ответов

Другие вопросы по тегам