XMLCSPReader null point error

本文详细解析了一段用于解决八皇后问题的Java代码中出现NULLPointerException错误的原因,并提供了针对性的解决方案,包括调整JRE版本、正确放置jar包以及解决项目导入错误等问题。

package queens; import java.io.FileNotFoundException; import java.io.IOException; import org.sat4j.csp.SolverFactory; import org.sat4j.reader.ParseFormatException; import org.sat4j.reader.XMLCSPReader; import org.sat4j.specs.ContradictionException; import org.sat4j.specs.IProblem; import org.sat4j.specs.ISolver; import org.sat4j.specs.TimeoutException; import org.sat4j.tools.ModelIterator; public class Solver { public static void main(String[] args) { ISolver solver = SolverFactory.newDefault(); solver.setTimeout(360); ModelIterator mi = new ModelIterator(solver); XMLCSPReader reader = new XMLCSPReader(solver); try { if (reader != null) reader.parseInstance("queens.xml"); IProblem problem = mi; boolean unsat = true; int count = 1; while (problem.isSatisfiable()) { unsat = false; System.out.print("[" + count + "] "); for (int i = 0; i < mi.model().length; i++) { System.out.print(mi.model()[i] + " "); } System.out.println(""); // Call mi.model() to be sure you iterate to the next solution mi.model(); count++; } if (unsat) { System.out.println("Unsitisfied"); } } catch (TimeoutException e) { System.out.println("Timeout"); } catch (FileNotFoundException e) { System.out.println("File not found"); } catch (IOException e) { System.out.println("IO Exception"); } catch (ParseFormatException e) { System.out.println("ParseFormatException"); } catch (ContradictionException e) { System.out.println("Contradiction"); } catch (java.lang.NullPointerException e) { System.out.print("NullPointerException"); } } }

上面一段代码不知道如何,一直报NULL Point Exception. 最后发现并非是代码写错,而是因为jre不对。需要使用opensdk-1.6。

然后:

java


然后:

java

选中java-opensdk1.6 然后在外面选中刚才的JavaSE-1.6 :

有时候eclipse报出Class Not Found错误,可能是因为jar包应该放在external jar的地方,但是你却放错了位置。添加external jar的地方。如果想添加external jars,需要在:

选中propertise,然后:

左边add external jars, 添加需要的jar即可。

如果发生了selection dose not contain a main type, 那么就需要重新创建一个Project,然后将你的文件再重新导入到新的Project中。或者粘贴过去。不知道为什么eclipse经常发生这个错误。

上面一个XMLCSPReader的各种jar文件需要在sat4j.org 上下载。该下模块的都下,但是注意版本号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值