[英]Java/Prolog help - trouble shooting
我在尝试使用interprolog时经历了一段艰难的时光
我有一些代码,试图调用一个prolog命令,问题是我的prolog数据库的实际加载。 这是代码:
myEngine = new NativeEngine();
myEngine.consultFromPackage("userlist.p", LoginHandler.class);
boolean x = myEngine.deterministicGoal("has_access(user,pass)");
当我运行程序prolog时,它会初始化正常,它会尝试查找同一软件包(第二行代码)中的userlist.p,然后抛出此错误:
Exception in thread "AWT-EventQueue-0" com.declarativa.interprolog.util.IPException: Problem consulting from package archive:C:\Users\Keval\AppData\Local\Temp\IP_6971701367857416872\userlist.p
at com.declarativa.interprolog.AbstractPrologEngine.consultFromPackage(AbstractPrologEngine.java)
at handlers.LoginHandler.actionPerformed(LoginHandler.java:25)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
我看了一下ConsultFromPackage的代码:
public void consultFromPackage(String filename,Object requester){
String path = cleanPath(copyToTemp(filename,requester).getPath());
path = unescapedFilePath(path);
progressMessage("consultFromPackage:"+path);
if (!command("consult('"+path+"')"))
throw new IPException("Problem consulting from package archive:"+path);
}
但我似乎无法找到问题的根源..我知道这一切都太遥远了,但是在此刻可以提供任何帮助。
谢谢
我的猜测是路径出问题了,并且在期望的位置找不到user.p
尝试从最小的命令行测试程序开始,以了解库在简单原型中的工作方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.