Проект Java 10 Panama — перенос решений JNI в ПанамуJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проект Java 10 Panama — перенос решений JNI в Панаму

Сообщение Anonymous »

Недавно я читал о проекте Panama.

Я понимаю, что это будет замена JNI следующего поколения - он позволит разработчикам Java писать код на собственном уровне с использованием Java (что, ИМХО, потрясающе).

Использование простое, насколько я могу судить, глядя на jnr-posix, например:

Код: Выделить всё

public class FileTest {
private static POSIX posix;

@BeforeClass
public static void setUpClass() throws Exception {
posix = POSIXFactory.getPOSIX(new DummyPOSIXHandler(), true);
}

@Test
public void utimesTest() throws Throwable {
// FIXME: On Windows this is working but providing wrong numbers and therefore getting wrong results.
if (!Platform.IS_WINDOWS) {
File f = File.createTempFile("utimes", null);

int rval = posix.utimes(f.getAbsolutePath(), new long[]{800, 200}, new long[]{900, 300});
assertEquals("utimes did not return 0", 0, rval);

FileStat stat = posix.stat(f.getAbsolutePath());

assertEquals("atime seconds failed", 800, stat.atime());
assertEquals("mtime seconds failed", 900, stat.mtime());

// The nano secs part is available in other stat implementations. We really just want to verify that the
// nsec portion of the timeval is passed through to the POSIX call.
// Mac seems to fail this test sporadically.
if (stat instanceof NanosecondFileStat && !Platform.IS_MAC) {
NanosecondFileStat linuxStat = (NanosecondFileStat) stat;

assertEquals("atime useconds failed", 200000, linuxStat.aTimeNanoSecs());
assertEquals("mtime useconds failed", 300000, linuxStat.mTimeNanoSecs());
}

f.delete();
}
}
// ....
// ....
// ....
}
Мой вопрос такой - поработав с JNI и зная, насколько он громоздкий, будет ли решение для переноса существующих решений JNI в формат Panama?

IE - просмотреть сгенерированный (через устаревший javah) заголовочный файл C и учитывая реализацию на C заголовочного файла, определить функции, которые можно заменить Panama API, затем сгенерировать выходной Java-файл?

Или существующие решения JNI необходимо будет реорганизовать вручную?

Дополнительные ссылки:
  • OpenJDK: Панама
  • Работа с собственными библиотеками в Java
  • JEP 191: Интерфейс внешних функций благодаря комментарию Хольгера
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»