我正在寻找一个与标准Unix函数(即stat()、getpwuid()、readlink() )接口的Java库。
这过去是存在的,并被称为javaunix。它是在2000年发布的。看这个公告。但是项目页面现在已经消失了。
在当今的Java中,这些类型的函数有什么现代的替代品吗?您可以对/bin/ls -l进行系统调用并解析输出,或者编写自定义的JNI方法,但是这些方法比使用旧的javaunix库要做的更多。
澄清--为了从C程序中查找文件的所有者,它应该调用给所有者UID的stat(),然后使用getpwuid()从UID获取帐户的名称。在Java中,这可以通过定制的JNI方法或使用JNI的javaunix库来完成。
发布于 2009-07-06 17:22:15
我知道有两个引人注目的项目:
就我个人而言,我非常喜欢南国防军。看看我的例子,映射link(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);
}
}发布于 2014-11-14 02:25:11
据我所知,JNA目前停滞不前。
开发人员继续创建JNR-POSIX。
发布于 2009-07-06 17:20:52
我会惊讶地看到一个,考虑到它几乎必然是特定的平台。Java不是这个工作的最佳工具。但是如果你坚持的话,你当然可以通过JNI上钩,也可以打电话给外部程序。或者看看Groovy,我知道Groovy对shell脚本来说相当不错,尽管我对它没有亲身经验。
https://stackoverflow.com/questions/1088113
复制相似问题