- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在为一个大学项目使用 grph 库 (www.i3s.unice.fr/~hogie/grph/)但是我只在 Linux 上使用该库时遇到问题,当我创建一个新的 Graph 对象时,我收到以下异常:
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.elendev.wesproject.graph.GraphFactory.main(GraphFactory.java:19)
Caused by: java.lang.NullPointerException
at toools.os.OperatingSystem.getLocalOS(OperatingSystem.java:47)
at grph.Grph.setCompilationDirectory(Grph.java:353)
at grph.Grph.<clinit>(Grph.java:246)
... 1 more
我尝试直接调用 getLocalOS 函数,使用:
System.out.println(toools.os.OperatingSystem.getLocalOS());
我收到了同样的异常。我找不到有关该库的信息,并且在 macbook 上启动的项目运行良好。
我目前使用的操作系统是gentoo linux 32bit。而jdk版本为:1.7.0_65
知道可能是什么问题吗?
最佳答案
不确定这是否可以算作答案,但至少可以帮助解决问题:
异常来自 toools.os.OperatingSystem.getLocalOS
方法。虽然您提到的网站的.JAR 文件有高达39 兆,但其中不包含这个 类的源代码。
似乎根本没有关于这个类的可用信息。 Google 和 Maven 都找不到与 tools
包相关的任何内容。人们不得不假设它是一个很久以前就消失了的废弃实用程序类。
但是,有问题的方法可以反汇编为以下代码:
public static OperatingSystem getLocalOS()
{
if (localOS == null)
{
if (new RegularFile("/etc/passwd").exists())
{
if (new Directory("/proc").exists())
{
if (new RegularFile("/etc/fedora-release").exists()) {
localOS = new FedoraLinux();
} else if (ExternalProgram.commandIsAvailable("ubuntu-bug")) {
localOS = new UbuntuLinux();
} else {
localOS = new Linux();
}
}
else if (new Directory("/Applications").exists()) {
localOS = new MacOSX();
} else {
localOS = new Unix();
}
}
else if (System.getProperty("os.name").startsWith("Windows")) {
localOS = new Windows();
} else {
localOS = new OperatingSystem();
}
localOS.name = System.getProperty("os.name");
localOS.version = System.getProperty("os.version");
}
return localOS;
}
由此,您可能可以推导出必须满足的条件,以便将您的操作系统正确检测为 linux 操作系统。特别是,当有一个名为 /etc/passwd
的文件和一个目录 /proc
时,这应该足以将操作系统识别为 Linux
。您可能想尝试一下...
关于Java grph 库 : Exception on toools. os.OperatingSystem.getLocalOS(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26323987/
下面这段代码 namespace ConsoleApplication1 { class Program { static void Main(string[] arg
我正在为一个大学项目使用 grph 库 (www.i3s.unice.fr/~hogie/grph/)但是我只在 Linux 上使用该库时遇到问题,当我创建一个新的 Graph 对象时,我收到以下异常
我们的一个测试用例中使用了以下机器人框架关键字: ${data_dict}= Create Dictionary apiproxy ${APIPROXY} request_ve
我是一名优秀的程序员,十分优秀!