[英]How to run a Clojure app with command line parameters
要从命令行运行Clojure文件,我使用的是添加到.zshrc中的zhs别名:
alias 'clojure=java -cp /home/sinan/cclojure/lib/clojure-1.2.1.jar:/home/sinan/cclojure/lib/clojure-contrib-1.2.0.jar clojure.main -i '
有了这个,我可以像这样运行我的Clojure应用程序:
clojure test3.clj
但是当我要发送命令行参数时,它不起作用。
➜ src clojure test3.clj arg1 arg2
Exception in thread "main" java.io.FileNotFoundException: arg1 (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at java.io.FileInputStream.<init>(FileInputStream.java:79)
at clojure.lang.Compiler.loadFile(Compiler.java:5817)
at clojure.main$load_script.invoke(main.clj:221)
at clojure.main$script_opt.invoke(main.clj:273)
at clojure.main$main.doInvoke(main.clj:354)
at clojure.lang.RestFn.invoke(RestFn.java:457)
at clojure.lang.Var.invoke(Var.java:377)
at clojure.lang.AFn.applyToHelper(AFn.java:172)
at clojure.lang.Var.applyTo(Var.java:482)
at clojure.main.main(main.java:37)
我究竟做错了什么? 我运行Clojure应用程序的方式是否错误?
谢谢。
您只需要指定脚本名称,在clojure.main
之后不带-i
键即可。 在您的情况下, clojure.main
认为,test.clj是要在eval之前执行的程序(并且它已经执行了),而arg1
是要执行的脚本
请参阅clojure.main / main函数的选项说明
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.