2009-04-24 2 views
4

Я ищу библиотеку или инструментария (так что я не должен писать это), что позволит мне сделать общие вещи, как следующее в Linux:Знаете ли вы о каких-либо инструментах или библиотеках обертки JNI, которые обертывают общие API-интерфейсы linux?

  • Получить идентификатор пользователя для пользователя.
  • Получить информацию о членстве в группе/пользователе.
  • Получить информацию о свободном пространстве на дисках.
  • Любые другие потенциально полезные вызовы API, которые обычно не доступны на Java, поскольку они нарушают переносимость.

У кого-нибудь есть идеи?

ответ

4

POSIX for Java звучит как хорошее место для начала, по крайней мере. Помните, что большинство из тех вещей, которые вы указали, не являются «Linux», они просто старые POSIX.

+1

Отличное решение, но ссылка для меня нарушена. Этот URL работает в настоящее время: http://www.bmsi.com/java/posix/index.html –

5

Не обертка для какой-либо конкретной библиотеки, но JNA (Java Native Access) «обеспечивает программы Java легкий доступ к нативным разделяемым библиотекам (DLL на Windows), не написав ничего, кроме Java кода»

Нет JNI или машинный код требуется , Эта функциональность сопоставима с типами Windows Platform/Invoke и Python. Доступ является динамическим во время выполнения без генерации кода.

JNA позволяет вам напрямую звонить в собственные функции, используя естественный вызов метода Java. Java-вызов выглядит так же, как в собственном коде. Большинство вызовов не требуют специальной обработки или конфигурации; не требуется шаблон или сгенерированный код.

В библиотеке JNA используется небольшая заглушка нужной библиотеки для динамического вызова собственного кода. Разработчик использует интерфейс Java для описания функций и структур в целевой исходной библиотеке. Это позволяет легко использовать преимущества встроенных функций платформы, не требуя больших накладных расходов на настройку и построение кода JNI для нескольких платформ.

Используя JNA, вы должны иметь возможность напрямую обращаться к API Linux (так же, как и от C).

 Смежные вопросы

  • Нет связанных вопросов^_^