2017-09-16 43 views
0

所以,我有我的不和谐BOT一个ClassNotFoundException每当我Eclipse之外运行它:的Java ClassNotFoundException的(我用的范围在行家编译)

Error: A JNI error has occurred, please check your installation and try 
again 
Exception in thread "main" java.lang.NoClassDefFoundError: 
sx/blah/discord/handle/obj/IChannel 
at java.lang.Class.getDeclaredMethods0(Native Method) 
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) 
at java.lang.Class.privateGetMethodRecursive(Class.java:3048) 
at java.lang.Class.getMethod0(Class.java:3018) 
at java.lang.Class.getMethod(Class.java:1784) 
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) 
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) 
Caused by: java.lang.ClassNotFoundException: sx.blah.discord.handle.obj.IChannel 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
... 7 more 

这768,16不可能发生,因为我有范围编译Maven的。我甚至明确地把它的范围编译:

<dependencies> 
    <dependency> 
     <groupId>com.github.austinv11</groupId> 
     <artifactId>Discord4J</artifactId> 
     <version>dev-SNAPSHOT</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.projectlombok</groupId> 
     <artifactId>lombok</artifactId> 
     <version>1.16.16</version> 
     <scope>compile</scope> 
    </dependency> 
</dependencies> 
+0

Maven是一个构建工具。它编译和打包你的类。但它不会运行它。你如何运行你的代码? –

+0

java -cp JarName.jar com.hallowizer.package.Main – Hallowizer

+1

你是怎么创建你的jar的? – Oleg

回答

0

的Apache Maven的是一个构建工具,

  • 检索项目依赖从远程仓库到(第三方罐等)本地机器基于pom.xml文件中声明的依赖关系。
  • 编译 Java类

在你的情况,你的pom.xml获取所有的依赖,并把它们放在你的本地计算机上。 Eclipse内置的Maven插件将这些Jar文件放在项目的类路径中。这就是您能够在Eclipse IDE中运行应用程序的原因。

如果你想运行Eclipse IDE外部应用程序,你可以在一对夫妇的方式做到这一点:在你的应用程序的classpath,例如,

  1. 把所有的依赖关系(JAR文件)

    $ java -cp ".:./jars/a.jar; ../jars/b.jar" myClass

  2. 使用的Maven插件阴影创建一个尤伯杯罐子Here是关于使用Shade插件的文档。
+0

谢谢!这非常有帮助,我现在有一个工作机器人! – Hallowizer