У меня есть этот огромный унаследованного кода, который построен на Java и C, который использует JNI вызовов и т.д. Это работает нормально с JRE 7. Я получаю следующее исключение при запуске на JRE 8.Не работает с JRE 8
#INVENTORYTUNER: Finished setting trusted transmitters, added: vw-pun-mar-dv07
#java.lang.NoClassDefFoundError: sun/io/CharToByteConverter
# at com.marimba.tools.util.ByteBuffer.setEncoding(ByteBuffer.java:109)
# at com.marimba.tools.util.ByteBuffer.<init>(ByteBuffer.java:97)
# at com.marimba.tools.logs.LogEntry.<init>(LogEntry.java:21)
# at com.marimba.tools.logs.GenericLog.logData(GenericLog.java:91)
# at com.marimba.tools.logs.GenericLog.log(GenericLog.java:84)
# at com.marimba.tools.logs.LogDispatcher.log(LogDispatcher.java:267)
# at com.marimba.castanet.tuner.Workspace.log(Workspace.java:1112)
# at com.marimba.castanet.tuner.Workspace.log(Workspace.java:1031)
# at com.marimba.castanet.tuner.Workspace.log(Workspace.java:1024)
# at com.marimba.castanet.tuner.Channel.<init>(Channel.java:180)
# at com.marimba.castanet.tuner.Workspace.getChannelCreate(Workspace.java:701)
# at com.marimba.castanet.tuner.Workspace.getChannelCreate(Workspace.java:684)
# at com.marimba.castanet.launch.Launcher$Create.run(Launcher.java:399)
# at com.marimba.tools.util.ThreadPool.runClient(ThreadPool.java:374)
# at com.marimba.tools.util.ThreadPool.run(ThreadPool.java:360)
# at java.lang.Thread.run(Unknown Source)
Внутренне мы используем этот почтовый индекс для поддержки устаревших методов. Как это сделать?
Что такое 'com.marimba'? Публичная библиотека? Внутренняя библиотека для вашей компании? – ThanksForAllTheFish
'sun. *' Обычно являются пакетами _internal_, которые вы должны использовать _not_, поскольку их можно удалить (и, вероятно, в этом случае) в любой версии JDK. Таким образом, вы либо должны запустить это приложение с Java 7, либо реорганизовать его. – Thomas
На самом деле sun.io.CharToByteConverter - это устаревший класс с 1.7 – MaVRoSCy