gpt4 book ai didi

Java grph 库 : Exception on toools. os.OperatingSystem.getLocalOS()

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:48 26 4
gpt4 key购买 nike

我正在为一个大学项目使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com