代码之家  ›  专栏  ›  技术社区  ›  Dima Fomin

Clojure/Java连接到REPL-Java.io.FileNotFoundException时出错:找不到'Clojure/core/server__init.class'

  •  1
  • Dima Fomin  · 技术社区  · 6 年前

    我在Windows10上。 我成功地编译并运行了这个jar。 但当我试图从telnet连接到Socket REPL时,我得到了这个错误,telnet写了 Connection closed by foreign host.

    错误

    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.
    

    你能解释一下怎么了吗(

    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() );
            }
        }
    
    }
    

    java -cp ".\target\echo-1.0-SNAPSHOT.jar;C:\lib\ext\clojure-1.8.0.jar" com.echo.Echo

    1 回复  |  直到 6 年前
        1
  •  2
  •   amalloy    6 年前

    您不应该引用从字符串中读取的符号:use clojure.core.server/repl 而不是 'clojure.core.server/repl

    推荐文章