当前位置: 首页 > 面试题库 >

是否有一个Unix函数的Java库?

宦文柏
2023-03-14
问题内容

我要寻找一个Java库与标准的Unix功能,即接口stat()getpwuid()readlink()

这曾经存在,并被称为javaunix。它于2000年发布。请参阅此公告。但是项目页面现在不见了。

如今,在Java中是否有现代替代这些类型的函数的功能?可以进行系统调用/bin/ls -l解析输出,或者编写自定义JNI方法,但是这些方法比简单地使用旧javaunix库要有效得多。

澄清-
为了从C程序中找出文件的所有者,它应调用stat()给出所有者的UID,然后用于getpwuid()从UID获取帐户的名称。在Java中,这可以通过自定义JNI方法或javaunix使用JNI
的库来完成。


问题答案:

我知道两个引人入胜的项目:

  • posix for Java(基于JNI)[源自Jython]
  • jna-posix(基于JNA)[源自JRuby]

我个人非常喜欢JNA。看一下我的这个映射示例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);
    }
}


 类似资料:
  • 问题内容: 有没有类似于unix命令的Java库? 即: file命令是一个很好的工具。我需要一些可以告诉我文件是否确实是我想要的东西的东西。(即图片,文档等) 我知道我可以运行该命令,但是我正在寻找一个Java库,而不是运行实际的unix命令。 问题答案: 在Google上进行快速搜索(对于公认的非显而易见的) “ java魔术文件检测” 会弹出一个相当不错的文章,“从文件中获取Mime类型”,

  • 问题内容: 我正在寻找一个表示分数(有理数)的Java库。例如,如果我要存储分数,那么它将不会被保存,因为它将失去其准确性。 这是我希望在此类库中找到的一些功能: ,,, 尽管我想知道是否已经存在类似的东西,但我可以自己实现这样的库。 编辑: 如果该库还实现(除上述之外)某些数论算法(如等等),那也很好。 问题答案: 该库包括该类。在另外的通常的工厂,存取和操作,可以构建其他有用的实体,包括,和。

  • 问题内容: Java是否有析构函数?我似乎找不到关于此的任何文档。如果没有,我怎么能达到同样的效果? 为了使我的问题更具体,我正在编写一个处理数据的应用程序,规范中说应该有一个“重置”按钮,以将应用程序恢复为最初的启动状态。但是,除非关闭应用程序或按下重置按钮,否则所有数据都必须是“实时”的。 作为通常的C / C ++程序员,我认为这将是微不足道的。(因此,我计划最后实现它。)我对程序进行了结构

  • 问题内容: 例如,我可能想进行如下分配(在JavaScript中): 在Java中,如何使用Lambdas做类似的事情?编译器不喜欢这样的东西: 问题答案: 否,因为Lambda需要目标类型。您所能做的最好是将表达式转换为: 您必须为特定的lambda使用正确的功能接口。如您所见,它非常笨拙,没有用。 更新 上面的代码是JavaScript代码的直接翻译。但是,直接转换代码并不能总是获得最佳结果。

  • 问题内容: 我在一个Activity中有一个IntentService,当我尝试调用该服务时,它将引发此错误,我发现这很奇怪,因为如果我声明了空的构造函数。 错误: AndroidManifest.xml 活动: 问题答案: 你是一个内部阶级。如果要将其保留在内部,请将其更改为static: 您可能需要阅读不同类型的嵌套类。google的第一个链接:http : //docs.oracle.com

  • 例如,我有一个超类和一组子类,我想要实现的是创建一个这样的 if 语句: if (一个 我知道,我可以使用构造函数来实现,但我只希望它发生在超类中,基本上,我不希望在创建子类的对象时调用该方法。 这个问题有道理吗?或者这只是我睡眠不足的影响? 我不知道该尝试什么,我实际上被这个卡住了。