clj repl crashing when launched and pwd is ~ - clojure

clj repl crashing when launched and pwd is ~, otherwise from any other directory it's fine.
I installed clojure following instructions from
https://clojure.org/guides/getting_started#_installation_on_linux
However, when i launch the repl staying in ~, I get following
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)
And if i change the directory to any other location, it runs ok
:~/src$ clj
Clojure 1.10.3
user=>
My OS is a Debian Buster (Minimal)... I tried looking up, but to no avail...I also have no clue as to what to look for...
Not sure if following is of any help...
:~$ 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"
:~$ 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)

The cause of the behavior is explained in one of the comments by Sean Corfield on Clojure Q&A.

Related

Getting java errors trying to run leiningen

I'm trying to build a project that uses leiningen -- though my issue seems to be with leiningen and not with the project.
When I run lein figwheel dev (for a project that has a /dev folder configured correctly) I get the following:
Figwheel: Cutting some fruit, just a sec ...
Unrecognized option: --add-modules
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Which indicates it's an error with the JVM, but I'm not familiar enough with working with any of JVM / clojure / lein to know what I should be doing to fix it.
Some (hopefully!) helpful information about my stack:
$ java --version
openjdk 11.0.1 2018-10-16
OpenJDK Runtime Environment (build 11.0.1+13-Debian-2)
OpenJDK 64-Bit Server VM (build 11.0.1+13-Debian-2, mixed mode, sharing)
$ lein --version
Leiningen 2.8.1 on Java 1.8.0_171 OpenJDK 64-Bit Server VM
Clone this repo and see if it solves your problems: https://github.com/cloojure/cljs-template
Be sure to read the README.txt file and follow the instructions.
For this project, all you need is:
> lein figwheel
I'm not sure what you have in your ./dev folder - that's probably the problem.

problems installing clojure lein under mac os 10.13.6

I am using Homebrew with the command brew install leiningen but trying lein repl gives
java.lang.ClassCastException: java.lang.Character cannot be cast to java.uti
l.Map$Entr
followed by many pages ending with
clojure.main.main (main.java:37)
the same happens with Macports or supplied script, boot installs perfectly with Homebrew.
I am learning Clojure from the Brave and True book which needs lein repl
To "install" lein just download the download script from the web page and run it :
https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein
Hope it helps
Consider using sdkman, even if leiningen is straightforward to use:
curl -s "https://get.sdkman.io" | bash
Then open a new terminal and type:
sdk install leiningen
Now try your:
lein repl
While you're at it, sdk can be used to manage your Java installations. Never again worry about dirtying your system with various versions, as they all go in your home directory, cleanly.

Jetty Version 9 throws java.lang.NoClassDefFoundError for Embedded Server

I decided to upgrade Jetty in order to add support for HTTPS connections. The build was done successfully by Maven and the code runs on Java 7 JRE.
After an upgrade from Jetty 8 (8.1.8.v20121106) to Jetty Version 9 (9.2.14.v20151106) using an embedded server code, I get the following error at the begin of the Jetty server startup.
Any hint what is causing the error at the classloader?
sh ./testit.sh
Exception in thread "main" java.lang.NoClassDefFoundError: org.eclipse.jetty.server.HttpConfiguration$Customizer
at java.lang.J9VMInternals.verifyImpl(Native Method)
at java.lang.J9VMInternals.verify(J9VMInternals.java:94)
at java.lang.J9VMInternals.prepare(J9VMInternals.java:514)
at java.lang.Class.getMethod(Class.java:1113)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:507)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:499)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.server.HttpConfiguration$Customizer
at java.net.URLClassLoader.findClass(URLClassLoader.java:600)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:777)
at java.lang.ClassLoader.loadClass(ClassLoader.java:750)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:326)
at java.lang.ClassLoader.loadClass(ClassLoader.java:731)
... 6 more
I've isolated the error cause. The Maven build tool added the Jetty distribution version number to the target libraries, which did not match my Java static classpath configuration. After correcting the classpath setting in the startup script, the program code started the embedded Jetty 9 server and worked just fine for my project.
#Joakim Erdfelt this is my Java version
java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build pxa6470sr9fp10-20150708_01(SR9 FP10))
IBM J9 VM (build 2.6, JRE 1.7.0 Linux amd64-64 Compressed References 20150701_255667 (JIT enabled, AOT enabled)
J9VM - R26_Java726_SR9_20150701_0050_B255667
JIT - tr.r11_20150626_95120.01
GC - R26_Java726_SR9_20150701_0050_B255667_CMPRSS
J9CL - 20150701_255667)
JCL - 20150628_01 based on Oracle jdk7u85-b15

Issues after Elasticsearch 1.3.2 upgrade

After upgrade to ES 1.3.2 I'm facing the following issues:
1) On startup got error:
[2014-08-26 11:10:20,285][ERROR][bootstrap ] {1.3.2}: Initialization Failed ...
1) NoSuchMethodError[org.elasticsearch.discovery.zen.ZenDiscovery.(Lorg/elasticsearch/common/settings/Settings;Lorg/elasticsearch/cluster/ClusterName;Lorg/elasticsearch/threadpool/ThreadPool;Lorg/elasticsearch/transport/TransportService;Lorg/elasticsearch/cluster/ClusterService;Lorg/elasticsearch/node/settings/NodeSettingsService;Lorg/elasticsearch/cluster/node/DiscoveryNodeService;Lorg/elasticsearch/discovery/zen/ping/ZenPingService;Lorg/elasticsearch/Version;)V]2) IllegalStateException[This is a proxy used to support circular references involving constructors. The object we're proxying is not constructed yet. Please wait until after injection has completed to use this object.]
2) when I attempt to upgrade the cloud-aws plugin to version 2.3.0 (compatible with ES 1.3) I get:
`Exception in thread "main" java.lang.UnsupportedClassVersionError: org/elasticsearch/plugins/PluginManager : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: org.elasticsearch.plugins.PluginManager. Program will exit.`
Java version is:
java version "1.7.0_45"
OpenJDK Runtime Environment (amzn-2.4.3.2.32.amzn1-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
Same issue faced with ES versions 1.3.1 and 1.3.0
Surprisingly ES v1.3.2 works fine on java version "1.7.0_25"
The issue is resolved. The issue comes when compilation happens with a different java version and at runtime a different version of java is found. When we looked at the Java -version, it was pointing at 1.7 where as java_home was pointing to 1.6. We also checked command "java which" which was pointing to 1.7. When we checked the script of elastic search, it gives precedence to "JAVA_HOME" and then looks for "java which". Installed JDK 1.7(earlier only JRE 1.7) was installed, uninstalled 1.6 using command
yum install java-1.7.0-openjdk
yum remove install openjdk-6-jre
yum remove java-1.6.0-openjdk
and the issue is resolved..!! :)

Jetty 6 from Debain packages with Oracle Java

i try to install jetty from the Debian (wheezy) packages. But instead of default Openjdk i installed Oracle Java.
Download tar.gz. and build a deb package
(https://wiki.debian.org/Java/Sun or http://www.webstimme.de/2013/02/05/linux-java-unter-debian-wheezy-installieren-anleitung/)
$java -v
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
Afterwards i istalled jetty with apt-get, but it also installes the packages
openjdk-6-jre-headless openjdk-6-jre-lib
so Java is then
java -version
java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1~deb7u1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
I will give it a second try with installing the Oracle Java version 1.6.
Any Experiences with installing the jetty package repo and use an Oracle Java, will this ever works?
Edit:
It's possible with Oracle Java 6 (1.6) but not with Oracle Java 7 (1.7)
I tried to run it with Oracle Java because of potential better performance for Solr. I somebody has knowledge about the difference in perfomance with Open JDK and Oracle Java it would be nice to post it here :) Thanks
Edit:
I was wrong. It runs also with Oracle JDK 7.
Just download and extract it e.g. to /opt/Oracle_Java and put the path in the /etc/default/jetty as JAVA_HOME
JAVA_HOME="/opt/Oracle_Java"
Which jre is used by default is controlled by alternatives system. Use the command update-java-alternatives -l to list which JREs are installed and then use update-java-alternatives -sto choose which JRE to use.
I have two JDKs on my machine:
# update-java-alternatives -l
j2sdk1.6-oracle 315 /usr/lib/jvm/j2sdk1.6-oracle
jdk-7-oracle-x64 317 /usr/lib/jvm/jdk-7-oracle-x64
To use jdk-7 as my default JDK I would run update-java-alternatives -s jdk-7-oracle-x64
It is possible to run Jetty 6 from Debian or Ubuntu package repository with Oracle Java 6 and Oracle Java 7.