Назад, когда я делал C, я использовал программу, названную "cdecl". Кажется, что это находится в Ubuntu Linux в cutils или cdecl пакете, и это, вероятно, доступно в другом месте.
Мне известны два интересных проекта:
Лично мне очень нравится JNA . Взгляните на этот мой пример, сопоставление ссылки (2)
:
import com.sun.jna.Library;
import com.sun.jna.Native;
class Link {
private static final C c =
(C) Native.loadLibrary("c", C.class);
private static interface C extends Library {
/** see man 2 link */
public int link(String oldpath, String newpath);
}
@Override
protected void hardLink(String from, String to) {
c.link(to, from);
}
}
Я был бы удивлен, увидев такой, поскольку он почти обязательно зависит от платформы. Java - не лучший инструмент для этой работы. Но вы, безусловно, можете подключиться через JNI или обратиться к внешним программам, если вы настаиваете. Или, возможно, посмотрите на Groovy, который, как я понимаю, достаточно хорош для написания сценариев оболочки, хотя у меня нет личного опыта с ним.
Я не знаю ни одной библиотеки с Функции Unix.
Я считаю, что для большинства функций вы можете использовать стандартный Java API, чтобы делать то, что вы хотите. например, нет необходимости использовать команду ls
для чтения файлов некоторого каталога. но в некоторых конкретных случаях, например stat
(чтобы узнать, является ли файл ссылкой), вам необходимо использовать JNI.