Why does sbt keep throwing this error whenever I run it? - scala

Running any sbt command throws a java error -
"The java installation you have is not up to date
requires at least version 1.6+, you have
version 1.8"
This is after the last sbt update . I am unable to check the current sbt version because I run into the above mentioned error on running sbt sbt-version.

I had the same issue.
In my error output the first line is
/usr/share/sbt/bin/sbt-launch-lib.bash: line 207: bc: command not found
followed by your java error message
installing bc solved my issue

just add bc installation sudo apt install bc it will solve your issue

The issue has been fixed and sbt no longer requires bc to be installed.

Related

SBT main class "not" not found

I'm seeing a strange issue when trying to run sbt on any of my projects on my new Mac. These are known-good projects so it is likely to be something up with sbt on my new machine (installed using brew install sbt).
As you can see below something is "not[newline]found", which is leading to the "Could not find or load main class not" error. I can't tell what this is or why it is happening, has anyone seen this before?
sbt -v
[sbt_options] declare -a sbt_options='([0]="-Dsbt.jse.engineType=Node" [1]="-Dsbt.jse.command=node" [2]="not" [3]="found")'
[process_args] java_version = '8'
# Executing command line:
java
-Dfile.encoding=UTF-8
-Xms1024m
-Xmx1024m
-Xss4M
-XX:ReservedCodeCacheSize=128m
-Dsbt.jse.engineType=Node
-Dsbt.jse.command=node
not
found
-jar
/usr/local/Cellar/sbt/1.5.6/libexec/bin/sbt-launch.jar
Error: Could not find or load main class not
Thanks to #LuisMiguelMejíaSuárez for the answer that helped get this working.
Uninstalled brews version of sbt (brew uninstall sbt)
Installed coursier CLI (https://get-coursier.io/docs/cli-installation)
Installed sbt via coursier (cs install sbt).

SBT fails with `String.class is broken`

sbt fails with a cryptic error on issuing any command (compile, assembly, clean or any other).
$ sbt --version
error: error while loading String, class file '/modules/java.base/java/lang/String.class' is broken
(class java.lang.NullPointerException/null)
I am on a machine running macOS, and sbt was installed via homebrew. I have tried upgrading to the latest versions of sbt (1.3.10), but the error still persists.
The issue is documented on the SBT Download page.
Homebrew maintainers have added a dependency to JDK 13 because they want to use more brew dependencies (brew#50649). This causes sbt to use JDK 13 even when java available on PATH is JDK 8 or 11. To prevent sbt from running on JDK 13, install jEnv or switch to using SDKMAN.
I was able to resolve the problem by using JDK 8 via jEnv.
Since sbt documents JDK 8 and 11 as compatible versions
We recommend AdoptOpenJDK JDK 8 or AdoptOpenJDK JDK 11
try controlling which JDK is used by sbt via -java-home setting which can be configured system-wide via sbtopts run configuration
/usr/local/etc/sbtopts
or per-project basis via
<project-root>/.sbtopts
For example, to configure JDK used by sbt in current project, try setting in .sbtopts
-java-home /Users/picard/.sdkman/candidates/java/current
This is what solved my problem on my Mac.
brew uninstall sbt
Install sdkman
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
Install sbt via sdk
sdk install sbt
I had the same issue recently. What worked for me is to install SDKMAN(https://sdkman.io/)
$ curl -s "https://get.sdkman.io" | bash
...
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
...
After installation, I wanted to see what versions of Java I can install. So I simply run this command to list all the available versions of Java
sdk list java
Choose the version you want to install (recommend installing either 8 or 11 as mentioned above) and simply run the command with the identifier that specifies your version from the list
sdk install java 11.0.3.hs-adpt
After installation, it set the Java 11 to default on my system. I then ran the sbt command again and it worked.
If you are using SDKMAN then in some cases certain versions of Java (i.e. JDK) from different vendor might help.
E.g. I was using Amazon Correto JDK8 (version 8.332.08.1-amzn) and it could not properly build my sbt project in IntellIJ IDEA, so I've switched to using Zulu's JDK8 (version 8.0.332-zulu) as default java version.
Hope this helps and good luck. :)

Could not retrieve sbt 0.13.9 on fresh Ubuntu install

After a fresh install of Ubuntu 15.04, I attempted to install and run SBT using the instructions from www.scala-sbt.org. It installed fine, but when I run it for the first time, I get a bunch of errors:
~$ sbt
...
:::: ERRORS
Server access Error: java.lang.RuntimeException: Unexpected error:
java.security.InvalidAlgorithmParameterException: the trustAnchors
parameter must be non-empty
url=https://repo1.maven.org/maven2/org/scala-sbt/sbt/0.13.9/sbt-0.13.9.jar
:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
unresolved dependency: org.scala-sbt#sbt;0.13.9: not found
Error during sbt execution: Error retrieving required libraries
(see /root/.sbt/boot/update.log for complete log)
Error: Could not retrieve sbt 0.13.9
What is going wrong?
I have had same problem with xubuntu 15.10. I installed package ca-cacert:
sudo apt-get install ca-cacert
It solved this problem.
After a bit of debugging, I found that the cacerts file is missing from the latest version of OpenJDK.
All I had to do was copy the cacerts file from /etc/ssl/certs/java/cacerts from a working computer to my new workstation, and it worked fine.
I've made my file available at this link.

GLIBC_2.7 not found

I am getting the following error when trying to run several executables:
/lib/libc.so.6: version `GLIBC_2.7' not found (required by .tools/bridge/bridge)
I have recently upgraded from CentOS 5.3 to 5.7 (I am required to run these tools on CentOS 5, so I can't upgrade to 6).
I recompiled the whole code but this error still appears.
Has anyone encountered this type of error?
Thanks,
Claudiu
The error means that you built .tools/bridge/bridge on a system with glibc-2.7 (or later), and are trying to run it on a system that has glibc-2.6 or earlier.
Linux (and most UNIXes) does not support "build on later, run on earlier"; only the reverse scenario is supported.
See also this answer.
The 'glibc' is not the latest version, and you can try to update glibc package.
yum install glibc
or
yum install glibc-2.7

Installation of distcc 3.1 on Sun Solaris

I am trying to install distcc 3.1 on one of the Sun Solaris platform.
After extracting the files to a folder I run configure (script which basically checks the required configuration).
This script throws out the following error
make: Fatal error in reader: Makefile, line 471: Unexpected end of line seen
after this if I run make or make install command I get another error and I am not able to proceed with the installation. Please help me with the correct installation process or guide me on how to resolve this Make issue.
this error occurs when the version of distcc installed is not compatible with your O.S. Install the package again this time for your own OS. Example - I installed distcc 2.13 for solaris 9 from www.sunfreeware.com.
I hope this helps !!
Thanks