2024 年 Clojure 状态调查!中分享您的想法。

欢迎!请参阅关于页面了解有关此工作方式的一些更多信息。

0
REPL
重新分类

我根据
https://clojure.org/guides/getting_started#_installation_on_linux

中的说明安装了 clojure。然而,当我在 ~ 中启动 repl 时,会出现以下

Exception in thread "main" java.lang.IllegalStateException: Attempting to call unbound fn: #'clojure.main/main

    at clojure.lang.Var$Unbound.throwArity(Var.java:45)
    at clojure.lang.AFn.invoke(AFn.java:28)
    at clojure.lang.AFn.applyToHelper(AFn.java:152)
    at clojure.lang.AFn.applyTo(AFn.java:144)
    at clojure.lang.Var.applyTo(Var.java:705)
    at clojure.main.main(main.java:40)

并且如果我更改目录到其他位置,它就会正常运行。

:/home/user/src$ clj
Clojure 1.10.3
user=>

我的操作系统是 Debian Buster (Minimal)... 我尝试查找,但无济于事...

不确定以下信息是否有帮助...

:/home/user$ mvn --version
Apache Maven 3.6.0
Maven home: /usr/share/maven
Java version: 11.0.11, vendor: Debian, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_IN, platform encoding: UTF-8
OS name: "linux", version: "4.19.0-17-amd64", arch: "amd64", family: "unix"

:/home/user$ java --version
openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)

4 个答复

+1
by
选择了 by
 
最佳答案

你是否有 src 文件夹在 ~ 中?如果有,里面是什么?(我在想你是否有一个 src/user.clj ,脚本中的某部分可能引起了崩溃)

by
:~$ ls -al src/
总大小 48
drwxr-xr-x 12 nalin nalin 4096 Jul 11 16:15 .
drwxr-xr-x 29 nalin nalin 4096 Jul 15 11:32 ..
drwxr-xr-x  2 nalin nalin 4096 Jul 14 17:23 clojure
drwxr-xr-x  3 nalin nalin 4096 Jun 27 20:44 elm
drwxr-xr-x  2 nalin nalin 4096 Jul 11 21:36 erlang
drwxr-xr-x  2 nalin nalin 4096 Jun 30 14:51 haskell
drwxr-xr-x 12 nalin nalin 4096 Jul  9 23:03 klipse
drwxr-xr-x  4 nalin nalin 4096 Feb 14 22:19 lfe
drwxr-xr-x  2 nalin nalin 4096 Mar 25 14:43 lisp
drwxr-xr-x  5 nalin nalin 4096 Jul  3 17:42 mongodb
drwxr-xr-x  2 nalin nalin 4096 Jul 10 20:58 ocaml
drwxr-xr-x  3 nalin nalin 4096 Jul 13 20:53 sml
by
:~$ ls -al /usr/local/lib/clojure/
总大小 20
drwxr-xr-x  3 root root 4096 Jul 13 18:09 .
drwxr-xr-x 15 root root 4096 Jul  9 22:45 ..
-rw-r--r--  1 root root  458 Jul 13 18:09 deps.edn
-rw-r--r--  1 root root 1489 Jul 13 18:09 example-deps.edn
drwxr-xr-x  2 root root 4096 Jul 13 18:09 libexec
:~$ ls -al /usr/local/lib/clojure/libexec/
总文件大小 14596
drwxr-xr-x 2 root root     4096 Jul 13 18:09 ./
drwxr-xr-x 3 root root     4096 Jul 13 18:09 ../
-rw-r--r-- 1 root root 14932202 Jul 13 18:09 clojure-tools-1.10.3.855.jar
-rw-r--r-- 1 root root     2955 Jul 13 18:09 exec.jar
这可能有助于理解……我希望如此……如果你能做到,也请帮助我理解……

:~$ su
密码
root@ranjan-t410:/home/nalin# cd ~
root@ranjan-t410:~# clj
Clojure 1.10.3
user=>
root@ranjan-t410:~# cd /home/nalin/
root@ranjan-t410:/home/nalin# clj
root@ranjan-t410:/home/nalin#
src/clojure 中有什么?正是它导致了你的问题。

默认情况下,clj/clojure 会查看 src 以查找命名空间,并且由于你有 src/clojure,所以它将对应于以下以 clojure.something 开头的命名空间。

将那个 src 文件夹重命名为 source,我相信你的问题将会消失(你可能需要使用 clj -Sforce 来获取 REPL,这将强制重新计算类路径缓存等)。

编辑了
我把我的练习放在 ~/src 下面。所以大部分 ~/src/clojure 都是我的 Clojure 相关的练习程序。

你说得对……我把 "src" 改成了 "source",确实有一个 REPL 在那里……

:~$ clj
Clojure 1.10.3
user=>

赞一个……

不过,我对这个问题也有一些好奇,这是否会在任何一个包含 "src" 文件夹的目录中发生,并且我在该目录中尝试启动 clj 的时候会发生吗?我在 StackOverflow 上也提出了相同的问题,并希望把你的回复作为答案链接过去……
好吧,只要有 src 文件夹,并且其中有一个路径对应于你尝试运行的命名空间 Clojure 源文件,就可能会发生这种情况。

例如,如果你有 src/elm/test.clj,那么如果你启动了一个 REPL 并执行 (require '[elm.test]),Clojure 会尝试加载该文件。

如果你有 src/haskell/project/Stuff.hs,并且你启动一个 REPL 并尝试 (require '[haskell.project.foo]),Clojure 会寻找在 src/haskell/project/ 下的 foo.clj(或 foo.cljc)文件。

这是因为 Clojure 项目通常有一个 src 文件夹(以及一个通常的测试文件夹——但你通常通过别名将其添加到你的路径中,例如 clj -A:test,其中 :test 别名将具有 :extra-paths ["test"]——现在 Clojure 会在 src 和测试文件夹中查找。
0

您好,

  • 请提供在~目录和~/src目录下which clj命令的输出。

  • 请提供env命令的输出。

:~$ which clj
/usr/local/bin/clj

:~/src$ which clj
/usr/local/bin/clj


******* 在~目录下env命令的输出 **************
SHELL=/bin/bash
WINDOWID=6291469
XTERM_VERSION=XTerm(344)
LANGUAGE=en_IN:en
XTERM_SHELL=/bin/bash
XDG_SEAT=seat0
PWD=/home/nalin
LOGNAME=nalin
XDG_SESSION_TYPE=tty
XAUTHORITY=/home/nalin/.Xauthority
WINDOWPATH=1
HOME=/home/nalin
LANG=en_IN
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36
INVOCATION_ID=7de1bed7edfb43d2989c032722a9aab6
XTERM_LOCALE=en_IN
XDG_SESSION_CLASS=user
TERM=xterm
USER=nalin
DISPLAY=:0.0
SHLVL=2
XDG_VTNR=1
XDG_SESSION_ID=1
XDG_RUNTIME_DIR=/run/user/1000
JOURNAL_STREAM=9:21181
HUSHLOGIN=FALSE
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
MAIL=/var/mail/nalin
_=/usr/bin/env
OLDPWD=/home/nalin/src

***********************************************

***********************************在~/src目录下env命令的输出 **************************
SHELL=/bin/bash
WINDOWID=6291469
XTERM_VERSION=XTerm(344)
LANGUAGE=en_IN:en
XTERM_SHELL=/bin/bash
XDG_SEAT=seat0
PWD=/home/nalin/src
LOGNAME=nalin
XDG_SESSION_TYPE=tty
XAUTHORITY=/home/nalin/.Xauthority
WINDOWPATH=1
HOME=/home/nalin
LANG=en_IN
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36
INVOCATION_ID=7de1bed7edfb43d2989c032722a9aab6
XTERM_LOCALE=en_IN
XDG_SESSION_CLASS=user
TERM=xterm
USER=nalin
DISPLAY=:0.0
SHLVL=2
XDG_VTNR=1
XDG_SESSION_ID=1
XDG_RUNTIME_DIR=/run/user/1000
JOURNAL_STREAM=9:21181
HUSHLOGIN=FALSE
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
MAIL=/var/mail/nalin
_=/usr/bin/env
OLDPWD=/home/nalin
0

您能在~目录下创建新目录吗?(特别是,~/.cpcache)我们知道如果有问题会导致问题,不知道这里是否适用。[链接](https://clojure.atlassian.net/browse/TDEPS-119)

by
我没有 ~/.cpcache,但我有 ~/.clojure/.cpcache

:~$ ls .clojure/.cpcache/
2013855593.basis  2013855593.cp  2013855593.libs  2953656631.basis  2953656631.cp  2953656631.libs  2953656631.main
by
发生了一件有趣的事情......我创建了 ~/.cpcache 目录......异常已经消失,但是 repl 仍然无法启动,我被默默地带回了终端......我关闭了终端,甚至重启了我的系统,仍然是一样的行为......没有更多的异常,但是默默地退回到终端......
by
您有 ~/deps.edn 吗?
by
没有... 我没有尝试 ~/deps.edn... 等一下...

我把 ~/.clojure/deps.edn 复制到了 ~/deps.edn... 但结果是相同的... 沉默退出...
by
不需要创建它,只是想知道是否还有其他东西在那里。

使用 `clojure` 是否有相同的行为?你能也尝试 `clojure -M -r` 吗?
是的... "clojure -M -r" 同样也会静默退出。

它们出现提示符需要大约一秒钟左右...不确定这有多重要...

其他任何目录,这两个命令都运行正常。

你希望我分享任何日志吗?
`clojure` 脚本可能在某个地方出错,但我不知道为什么或在哪里。我不知道接下来该尝试什么。你可以试试 `bash -x clojure`,这可能有助于我们找到错误的地点。
"bash -x clojure" 的输出在 ~....

:~$ bash -x clojure
+ set -e
+ install_dir=/usr/local/lib/clojure
+ version=1.10.3.855
+ print_classpath=false
+ describe=false
+ verbose=false
+ trace=false
+ force=false
+ repro=false
+ tree=false
+ pom=false
+ help=false
+ prep=false
+ jvm_opts=()
+ resolve_aliases=()
+ classpath_aliases=()
+ repl_aliases=()
+ mode=repl
+ '[' 0 -gt 0 ']
+ set +e
++ type -p java
+ JAVA_CMD=/usr/bin/java
+ set -e
+ [[ -z /usr/bin/java ]]
+ false
+ tools_cp=/usr/local/lib/clojure/libexec/clojure-tools-1.10.3.855.jar
+ [[ -n '']]
+ [[ -n '']]
+ config_dir=/home/nalin/.clojure
+ [[ ! -d /home/nalin/.clojure ]]
+ [[ ! -e /home/nalin/.clojure/deps.edn ]]
+ [[ -n '']]
+ [[ -n '']]
+ user_cache_dir=/home/nalin/.clojure/.cpcache
+ config_project=deps.edn
+ false
+ config_user=/home/nalin/.clojure/deps.edn
+ config_paths=("$install_dir/deps.edn" "$config_dir/deps.edn" "deps.edn")
++ printf %s /usr/local/lib/clojure/deps.edn /home/nalin/.clojure/deps.edn deps.edn
+ config_str=,/usr/local/lib/clojure/deps.edn,/home/nalin/.clojure/deps.edn,deps.edn
+ config_str=/usr/local/lib/clojure/deps.edn,/home/nalin/.clojure/deps.edn,deps.edn
+ [[ -f deps.edn ]]
+ cache_dir=/home/nalin/.clojure/.cpcache
++ join ''
++ local d=
++ shift
++ echo -n ''
++ shift
++ printf %s
++ join ''
++ local d=
++ shift
++ echo -n ''
++ shift
++ printf %s
++ join ''
++ local d=
++ shift
++ echo -n ''
++ shift
++ printf %s
+ val='|||||'
+ for config_path in "${config_paths[@]}"
+ [[ -f /usr/local/lib/clojure/deps.edn ]]
+ val='||||||/usr/local/lib/clojure/deps.edn'
+ for config_path in "${config_paths[@]}"
+ [[ -f /home/nalin/.clojure/deps.edn ]]
+ val='||||||/usr/local/lib/clojure/deps.edn|/home/nalin/.clojure/deps.edn'
+ for config_path in "${config_paths[@]}"
+ [[ -f deps.edn ]]
+ val='||||||/usr/local/lib/clojure/deps.edn|/home/nalin/.clojure/deps.edn|NIL'
++ echo '||||||/usr/local/lib/clojure/deps.edn|/home/nalin/.clojure/deps.edn|NIL'
++ cksum
使用++ cut '-d ' -f 1
+ 设ck=2013855593
+ libs_file=/home/nalin/.clojure/.cpcache/2013855593.libs
+ cp_file=/home/nalin/.clojure/.cpcache/2013855593.cp
+ jvm_file=/home/nalin/.clojure/.cpcache/2013855593.jvm
+ main_file=/home/nalin/.clojure/.cpcache/2013855593.main
+ basis_file=/home/nalin/.clojure/.cpcache/2013855593.basis
+ false
+ stale=false
+ false
+ false
+ false
+ false
+ '[' '!' -f /home/nalin/.clojure/.cpcache/2013855593.cp ']'
+ for config_path in "${config_paths[@]}"
+ '[' /usr/local/lib/clojure/deps.edn -nt /home/nalin/.clojure/.cpcache/2013855593.cp ']'
+ for config_path in "${config_paths[@]}"
+ '[' /home/nalin/.clojure/deps.edn -nt /home/nalin/.clojure/.cpcache/2013855593.cp ']'
+ for config_path in "${config_paths[@]}"
+ '[' deps.edn -nt /home/nalin/.clojure/.cpcache/2013855593.cp ']'
+ false
+ false
+ [[ false = true ]]
+ false
+ [[ -n '']]
++ cat /home/nalin/.clojure/.cpcache/2013855593.cp
+ cp=src:/home/nalin/.m2/repository/org/clojure/clojure/1.10.3/clojure-1.10.3.jar:/home/nalin/.m2/repository/org/clojure/core.specs.alpha/0.2.56/core.specs.alpha-0.2.56.jar:/home/nalin/.m2/repository/org/clojure/spec.alpha/0.2.194/spec.alpha-0.2.194.jar
+ false
+ false
+ false
+ false
+ false
+ false
+ set -f
+ [[ -e /home/nalin/.clojure/.cpcache/2013855593.jvm ]]
+ '[' repl == exec ']'
+ [[ -e /home/nalin/.clojure/.cpcache/2013855593.main ]]
+ '[' 0 -gt 0 ']
+ exec /usr/bin/java -Dclojure.basis=/home/nalin/.clojure/.cpcache/2013855593.basis -classpath src:/home/nalin/.m2/repository/org/clojure/clojure/1.10.3/clojure-1.10.3.jar:/home/nalin/.m2/repository/org/clojure/core.specs.alpha/0.2.56/core.specs.alpha-0.2.56.jar:/home/nalin/.m2/repository/org/clojure/spec.alpha/0.2.194/spec.alpha-0.2.194.jar clojure.main
by
"bash -x clojure" 在 ~/Downloads... 的输出

:~/Downloads$ bash -x clojure
+ set -e
+ install_dir=/usr/local/lib/clojure
+ version=1.10.3.855
+ print_classpath=false
+ describe=false
+ verbose=false
+ trace=false
+ force=false
+ repro=false
+ tree=false
+ pom=false
+ help=false
+ prep=false
+ jvm_opts=()
+ resolve_aliases=()
+ classpath_aliases=()
+ repl_aliases=()
+ mode=repl
+ '[' 0 -gt 0 ']
+ set +e
++ type -p java
+ JAVA_CMD=/usr/bin/java
+ set -e
+ [[ -z /usr/bin/java ]]
+ false
+ tools_cp=/usr/local/lib/clojure/libexec/clojure-tools-1.10.3.855.jar
+ [[ -n '']]
+ [[ -n '']]
+ config_dir=/home/nalin/.clojure
+ [[ ! -d /home/nalin/.clojure ]]
+ [[ ! -e /home/nalin/.clojure/deps.edn ]]
+ [[ -n '']]
+ [[ -n '']]
+ user_cache_dir=/home/nalin/.clojure/.cpcache
+ config_project=deps.edn
+ false
+ config_user=/home/nalin/.clojure/deps.edn
+ config_paths=("$install_dir/deps.edn" "$config_dir/deps.edn" "deps.edn")
++ printf %s /usr/local/lib/clojure/deps.edn /home/nalin/.clojure/deps.edn deps.edn
+ config_str=,/usr/local/lib/clojure/deps.edn,/home/nalin/.clojure/deps.edn,deps.edn
+ config_str=/usr/local/lib/clojure/deps.edn,/home/nalin/.clojure/deps.edn,deps.edn
+ [[ -f deps.edn ]]
+ cache_dir=/home/nalin/.clojure/.cpcache
++ join ''
++ local d=
++ shift
++ echo -n ''
++ shift
++ printf %s
++ join ''
++ local d=
++ shift
++ echo -n ''
++ shift
++ printf %s
++ join ''
++ local d=
++ shift
++ echo -n ''
++ shift
++ printf %s
+ val='|||||'
+ for config_path in "${config_paths[@]}"
+ [[ -f /usr/local/lib/clojure/deps.edn ]]
+ val='||||||/usr/local/lib/clojure/deps.edn'
+ val='||||||/usr/local/lib/clojure/deps.edn|/home/nalin/.clojure/deps.edn|NIL'
++ echo '||||||/usr/local/lib/clojure/deps.edn|/home/nalin/.clojure/deps.edn|NIL'
++ cksum
使用++ cut '-d ' -f 1
+ 设ck=2013855593
+ libs_file=/home/nalin/.clojure/.cpcache/2013855593.libs
+ cp_file=/home/nalin/.clojure/.cpcache/2013855593.cp
+ jvm_file=/home/nalin/.clojure/.cpcache/2013855593.jvm
+ main_file=/home/nalin/.clojure/.cpcache/2013855593.main
+ basis_file=/home/nalin/.clojure/.cpcache/2013855593.basis
+ false
+ stale=false
+ false
+ false
+ false
+ false
+ '[' '!' -f /home/nalin/.clojure/.cpcache/2013855593.cp ']'
+ for config_path in "${config_paths[@]}"
+ '[' /usr/local/lib/clojure/deps.edn -nt /home/nalin/.clojure/.cpcache/2013855593.cp ']'
+ for config_path in "${config_paths[@]}"
+ '[' /home/nalin/.clojure/deps.edn -nt /home/nalin/.clojure/.cpcache/2013855593.cp ']'
+ for config_path in "${config_paths[@]}"
+ '[' deps.edn -nt /home/nalin/.clojure/.cpcache/2013855593.cp ']'
+ false
+ false
+ [[ false = true ]]
+ false
+ [[ -n '']]
++ cat /home/nalin/.clojure/.cpcache/2013855593.cp
+ cp=src:/home/nalin/.m2/repository/org/clojure/clojure/1.10.3/clojure-1.10.3.jar:/home/nalin/.m2/repository/org/clojure/core.specs.alpha/0.2.56/core.specs.alpha-0.2.56.jar:/home/nalin/.m2/repository/org/clojure/spec.alpha/0.2.194/spec.alpha-0.2.194.jar
+ false
+ false
+ false
+ false
+ false
+ false
+ set -f
+ [[ -e /home/nalin/.clojure/.cpcache/2013855593.jvm ]]
+ '[' repl == exec ']'
+ [[ -e /home/nalin/.clojure/.cpcache/2013855593.main ]]
+ '[' 0 -gt 0 ']
+ exec /usr/bin/java -Dclojure.basis=/home/nalin/.clojure/.cpcache/2013855593.basis -classpath src:/home/nalin/.m2/repository/org/clojure/clojure/1.10.3/clojure-1.10.3.jar:/home/nalin/.m2/repository/org/clojure/core.specs.alpha/0.2.56/core.specs.alpha-0.2.56.jar:/home/nalin/.m2/repository/org/clojure/spec.alpha/0.2.194/spec.alpha-0.2.194.jar clojure.main
Clojure 1.10.3
user=>
by
这本身就不一样... 在 ~/Downloads 工作正常,但不在 ~ 中... 在 ~ 中,终端窗口本身就会“消失”... 我必须重新打开我的终端窗口... 即使在 ~/Downloads,Ctrl-D 和 Ctrl-C-C 也会导致终端窗口消失...

exec /usr/bin/java -Dclojure.basis=/home/nalin/.clojure/.cpcache/2013855593.basis -classpath src:/home/nalin/.m2/repository/org/clojure/clojure/1.10.3/clojure-1.10.3.jar:/home/nalin/.m2/repository/org/clojure/core.specs.alpha/0.2.56/core.specs.alpha-0.2.56.jar:/home/nalin/.m2/repository/org/clojure/spec.alpha/0.2.194/spec.alpha-0.2.194.jar clojure.main
by
尝试去掉execParams
静默退出...
exec 会用启动的 java 进程替换当前进程(您的终端 shell),所以您不希望从命令行执行。但,您确实可以在那里得到 repl。

我无法解释您看到的东西。可能和 bash 本身或主目录的权限有关,但我不确定具体是什么或如何进行调试。
我的 repl 并不是在机器上不可用... 除了 ~ 之外的任何文件夹都可以。甚至能够运行 Emacs 中的东西... 所以它对我来说不是障碍...

我想分享一下,让大家知道... 如果你们觉得需要执行更多步骤,请让我知道,我可以分享执行结果如果那有帮助... 只是有点尴尬...

除了 bash 以外,还有其他 shell 您希望我尝试吗??顺便说一句,我尝试了 "sh -x clojure",但它给了我这个...
:~$ sh -x clojure
sh: 0: 无法打开 clojure
我认为这并非与 shell 有关... 但那只是我的一个猜测...
0

我也想知道 clj -Spath 在 ~ 中的输出。显然,Clojure 本身并没有被添加到类路径中。如果你有 ~/.clojure/deps.edn,你也可以尝试将其移除。

:~$ clj -Spath
src:/home/nalin/.m2/repository/org/clojure/clojure/1.10.3/clojure-1.10.3.jar:/home/nalin/.m2/repository/org/clojure/core.specs.alpha/0.2.56/core.specs.alpha-0.2.56.jar:/home/nalin/.m2/repository/org/clojure/spec.alpha/0.2.194/spec.alpha-0.2.194.jar

我应该尝试删除 ~/.clojure/deps.edn 吗 ??
不确定以下信息是否有帮助...

:/home/user$ mvn --version
Apache Maven 3.6.0
Maven home: /usr/share/maven
Java version: 11.0.11, vendor: Debian, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_IN, platform encoding: UTF-8
OS name: "linux", version: "4.19.0-17-amd64", arch: "amd64", family: "unix"


:/home/user$ java --version
openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)
...