Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
给我java.lang.NoClassDefFoundError的接口_Java_Linux - Fatal编程技术网

给我java.lang.NoClassDefFoundError的接口

给我java.lang.NoClassDefFoundError的接口,java,linux,Java,Linux,我的程序编译得很好。但是当我尝试运行它时,问题就开始了 jesvin@Jesvin-Technovia:~/dev/drools/sudoku$ java App Exception in thread "main" java.lang.NoClassDefFoundError: org/drools/planner/core/solution/Solution Caused by: java.lang.ClassNotFoundException: org.drools.planner.co

我的程序编译得很好。但是当我尝试运行它时,问题就开始了

jesvin@Jesvin-Technovia:~/dev/drools/sudoku$ java App 
Exception in thread "main" java.lang.NoClassDefFoundError: org/drools/planner/core/solution/Solution
Caused by: java.lang.ClassNotFoundException: org.drools.planner.core.solution.Solution
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: App. Program will exit.
我知道接口
解决方案
在编译时已正确解析

下面是一个违规的类
数独
,它实现了解决方案:

package domain;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

import org.drools.planner.api.domain.solution.PlanningEntityCollectionProperty;
import org.drools.planner.core.solution.Solution;
import org.drools.planner.core.score.SimpleScore;

public class Sudoku implements Solution<SimpleScore>{
...
这是我错误地在
数独
解决方案
之间转换的结果吗


我的类路径设置为:

declare -x CLASSPATH=".:/home/jesvin/dev/drools/sudoku/binaries"

您需要添加类
org.drools.planner.core.solution.solution
的外部Jar文件


您可以得到它

您需要添加类为org.drools.planner.core.solution.solution的外部Jar文件


您可以得到它

正如@GPRathour在上面写的,您需要将drools planner中的jar添加到类路径中

我猜
/home/jesvin/dev/drools/sudoku/binaries
是一个目录。你需要把罐子放在那里。 比如说

declare-x CLASSPATH=“.:/home/jesvin/dev/drools/sudoku/binaries/drools planner core.jar

更好的方法是通过-classpath在命令行中添加JAR

java-classpath/jar1;path/jar-App

在异常堆栈中,您应该始终检查“起因”消息。在该堆栈中,您真正的异常是由以下原因引起的:java.lang.ClassNotFoundException:org.drools.planner.core.solution.solution


(另外需要注意的是——使用包。在适当的包中包含类有助于以后阅读代码。)

正如@GPRathour在上面所写的,您需要将drools planner中的jar添加到类路径中

我猜
/home/jesvin/dev/drools/sudoku/binaries
是一个目录。你需要把jar放在那里。 比如说

declare-x CLASSPATH=“.:/home/jesvin/dev/drools/sudoku/binaries/drools planner core.jar

更好的方法是通过-classpath在命令行中添加JAR

java-classpath/jar1;路径/jar应用程序

在异常堆栈中,您应该始终检查“原因”消息。在这个例子中,真正的异常是由java.lang.ClassNotFoundException:org.drools.planner.core.solution.solution引起的


(需要注意的另一点是——使用包。在适当的包中包含类有助于以后阅读代码。)

我建议您使用一个内置工具,它可以处理第三方依赖关系。例如,您可以简单地使用maven作为构建工具,并在项目pom文件中声明所需的所有依赖项

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.0</version>
  <type>jar</type>
  <scope>test</scope>
  <optional>true</optional>
</dependency>

朱尼特
朱尼特
4
罐子
测试
真的

我建议您使用一个内置工具来处理第三方依赖关系。例如,您可以简单地使用maven作为构建工具,并在项目pom文件中声明所需的所有依赖项

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.0</version>
  <type>jar</type>
  <scope>test</scope>
  <optional>true</optional>
</dependency>

朱尼特
朱尼特
4
罐子
测试
真的

马上!我使用
dir/*
功能导入所有JAR,如
declare-x CLASSPATH=“.:/home/jesvin/dev/drools/sudoku/binaries/*”
中所示。编译器的类路径被硬编码到一个自定义命令中,我不小心把环境变量留错了。没错!我使用
dir/*
功能导入所有JAR,如
declare-x CLASSPATH=“.:/home/jesvin/dev/drools/sudoku/binaries/*”
中所示。编译器的类路径被硬编码到自定义命令中,我不小心把环境变量留错了。