首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >graphstream.Graph类中的问题

graphstream.Graph类中的问题
EN

Stack Overflow用户
提问于 2016-09-10 15:54:21
回答 1查看 667关注 0票数 3

我正在使用org.graphstream.graph库使用graphstream来绘制图形(使用lat-lon)。

代码语言:javascript
复制
import org.graphstream.graph.*;

下面是显示图形的代码。

代码语言:javascript
复制
public static void displayGraph(){
   System.setProperty("gs.ui.renderer","org.graphstream.ui.j2dviewer.J2DGraphRenderer");
   Graph graph = new MultiGraph("Test");
   try{
      graph.read("data/fullGraph2sc.dgs");
   }
   catch (Exception e){
    e.printStackTrace();
   }

   graph.addAttribute("ui.stylesheet",styleSheet);
   graph.addAttribute("ui.quality");
   graph.addAttribute("ui.antialias");
   graph.display(false);
}

以包含必要的ui文件。我在pom.xml中也有:

代码语言:javascript
复制
    <!-- https://mvnrepository.com/artifact/org.graphstream/gs-core -->
    <dependency>
        <groupId>org.graphstream</groupId>
        <artifactId>gs-core</artifactId>
        <version>1.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.graphstream/gs-algo -->
    <dependency>
        <groupId>org.graphstream</groupId>
        <artifactId>gs-algo</artifactId>
        <version>1.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.graphstream/gs-ui -->
    <dependency>
        <groupId>org.graphstream</groupId>
        <artifactId>gs-ui</artifactId>
        <version>1.3</version>
    </dependency>

问题是当我在Intellij中运行这段代码时,它没有给出任何问题。然而,当我尝试使用命令行运行时,它给出了以下错误:

代码语言:javascript
复制
Exception in thread "main" java.lang.NoClassDefFoundError: org/graphstream/graph/Graph
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2531)
at java.lang.Class.getMethod0(Class.java:2774)
at java.lang.Class.getMethod(Class.java:1663)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: org.graphstream.graph.Graph
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 6 more

现在我有两个问题要问: 1)我如何使用命令行执行,错误显示完全(我无法调试,因为... 6更多;它不能告诉确切的行问题在哪里。) 2)为什么我只在命令行执行过程中得到上述错误?

EN

回答 1

Stack Overflow用户

发布于 2016-12-14 11:03:10

1)首先,找到您的.m2目录。当maven获得pom中指定的依赖项时,它会将它们放在/Users/username中一个名为.m2的文件夹中(如果您是在windows上,也可以放在类似的主目录中)。这就是graphstream类所在的位置。有关.m2文件夹的更多参考,请查看this Mykong post。要解决NoClassDefFoundError问题,请在类路径中包含以下jars:

代码语言:javascript
复制
/{.M2_LOCATION}/.m2/repository/org/graphstream/gs-core/1.3/gs-core-1.3.jar
/{.M2_LOCATION}/.m2/repository/org/graphstream/pherd/1.0/pherd-1.0.jar
/{.M2_LOCATION}/.m2/repository/org/graphstream/mbox2/1.0/mbox2-1.0.jar

2)它在IntelliJ中运行良好的原因是IntelliJ会自动在类路径中包含这些jars (通常还有许多其他jars)。要了解IntelliJ在幕后做了什么,请查看当您点击"run“时打开的对话框窗格中的第一行文本-这是IntelliJ正在使用的命令行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39423921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档