连接到REPL-Java.io.FileNotFoundException时发生Clojure/Java错误:找不到';clojure/core/server\uuuu init.class
我在Windows10上。 我成功地编译并运行了这个jar。 但当我试图从telnet连接到Socket REPL时,我收到了这个错误,telnet写入了由外部主机关闭的连接到REPL-Java.io.FileNotFoundException时发生Clojure/Java错误:找不到';clojure/core/server\uuuu init.class,clojure,read-eval-print-loop,clojure-java-interop,clojure-repl,Clojure,Read Eval Print Loop,Clojure Java Interop,Clojure Repl,我在Windows10上。 我成功地编译并运行了这个jar。 但当我试图从telnet连接到Socket REPL时,我收到了这个错误,telnet写入了由外部主机关闭的连接。 错误 Exception in thread "Clojure Connection mine 1" java.io.FileNotFoundException: Could not locate 'clojure/core/server__init.class or 'clojure/core/server.clj o
连接。
错误
Exception in thread "Clojure Connection mine 1" java.io.FileNotFoundException: Could not locate 'clojure/core/server__init.class or 'clojure/core/server.clj on classpath.
你能解释一下怎么了吗(
我像这样跑
java-cp.“\target\echo-1.0-SNAPSHOT.jar;C:\lib\ext\clojure-1.8.0.jar”com.echo.echo
您不应该引用从字符串中读取的符号:使用clojure.core.server/repl
而不是'clojure.core.server/repl
。引用用于防止求值;但由于您没有求值,这只会导致在不属于它的地方抛出一个额外的引号。啊!谢谢T
package com.echo;
import clojure.java.api.Clojure;
import clojure.lang.IFn;
import clojure.lang.RT;
import clojure.lang.Var;
import clojure.lang.Symbol;
public class Echo {
public static void main(String[] args) {
try {
IFn plus = Clojure.var("clojure.core", "+");
System.out.println( plus.invoke(1, 2).getClass().getSimpleName() );
IFn require = Clojure.var("clojure.core", "require");
require.invoke(Clojure.read("clojure.core.server"));
IFn startServer = Clojure.var("clojure.core.server","start-server");
//Object options = Clojure.read("\"{:port 4555 :accept 'clojure.core.server/repl :name :repl2 :server-daemon false}\"");
startServer.invoke(
Clojure.read("{:port 4555 :accept 'clojure.core.server/repl :name mine :server-daemon false}")
);
System.out.println( "Started" );
}
catch(Exception e)
{
System.out.println( e.getMessage() );
}
}
}