jdk source code lookup in cider not working - emacs

I am using Emacs 26.3, CIDER 0.23.0 (Lima), Open JDK 11.0.5 (OpenJDK Runtime Environment Corretto-11.0.5.10.2 (build 11.0.5+10-LTS) on macOS Mojave (10.14.6). My CIDER installation works for everything that I need, but not for referencing JDK source code and javadoc. It shows me Clojure source for Clojure methods but not JDK source for any Java methods for some reason. I figured out that my cider-classpath is missing the jdk source.zip location and other jars from JRE as seen below.
/Users/user/Projects/clojure/test/test
/Users/user/Projects/clojure/test/src
/Users/user/Projects/clojure/test/dev-resources
/Users/user/Projects/clojure/test/resources
/Users/user/Projects/clojure/test/target/classes
/Users/user/.m2/repository/cider/cider-nrepl/0.22.4/cider-nrepl-0.22.4.jar
/Users/user/.m2/repository/nrepl/nrepl/0.6.0/nrepl-0.6.0.jar
/Users/user/.m2/repository/org/clojure/clojure/1.10.0/clojure-1.10.0.jar
/Users/user/.m2/repository/org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176.jar
/Users/user/.m2/repository/org/clojure/core.specs.alpha/0.2.44/core.specs.alpha-0.2.44.jar
/Users/user/.m2/repository/clojure-complete/clojure-complete/0.2.5/clojure-complete-0.2.5.jar
How can I make JDK source code lookup work in CIDER?

Try to add a directory containing a zip with Java sources as a resource to Leiningen profile (~/.lein/profiles.clj) e.g. a default one:
{:user {:resource-paths ["/usr/lib/jvm/openjdk-8"]}}
This now must be included in every project which activates the profile.
I'm using Ubuntu 18.04 with Emacs 26.3 CIDER 0.24.0 nREPL 0.6.0 Java 1.8.0_242.

Related

SBT project in IDEA 14 does not work on Ubuntu

My SBT project imports itself perfectly to IDEA IDE on MacOS, but on the Ubuntu it shows dozens of errors about not being able to resolve symbols.
for example:
import play.api.mvc.Action
reports Unused import statement from withing IDEA
and reference to Action several lines afterwards is reported as Cannot resolve method Action.apply
The problem is only to be seen in the IDE as sbt run from the command line is perfectly ok.
My current version of the IntelliJ IDEA IDE is 14 Ultimate
Scala plugin version 1.2.1
SBT version on the Ubuntu host 0.13.7
JDK version Oracle JDK 1.8.0_25
I had the same problem (running Fedora 20). Try with the EAP version of Intellij IDEA 14 (see : https://confluence.jetbrains.com/display/IDEADEV/IDEA+14+EAP).
Also, you have to use the EAP version of the Scala plugin (parameters > Frameworks and Languages > Scala > Misc).
It worked for me.

Playframework 2.3.6 reactive-stocks-java8 template issue in eclipse Luna

I have a problem using Eclipse as IDE for the reactive-stocks-java8 template coming with typesafe-activator-1.2.10
Here are my steps:
Install Eclipse Luna on my Mac.
Default JRE is 1.6, but I have the oracle JDK in /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/ after installing with the standard method. I add this JRE to the alternate JRE of eclipse
Install activator
I've downloaded typesafe-activator-1.2.10.zip, unzip it in a folder, add it to the path to have activator in the command line.
Create the project
$activator new
> reactive-stocks-java8
$cd reactive-stocks-java8/
$java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
$activator
[reactive-stocks-java8] $eclipse with-source=true
In eclipse
I import the project in the standard way (Import / Existing Project into Workspace)
in the java build path, The JRE is the 1.6. I change it to 1.8.0_25
I also have to change the java compiler
In my package explorer or the Problems view, no compilation error, great. Now I click on app/controller/Application.java to open it in the editor. In the editor, I've got some unresolved:
views.html.index cannot be resolved to a type
The type scala.collection.Seq cannot be resolved. It is indirectly referenced from required .class files
What am I missing?
here are the answers from the community
https://groups.google.com/forum/#!topic/play-framework/v6ep7DmfH18

Setup eclipse + svn

I've got a Java project versioned by svn and trying to configure the build for linux. On my work computer all works fine and I committed the changes. To both my home computers however I get this error which seems like some trivial setup problem:
Exception in thread "main" java.lang.NoClassDefFoundError: adventure/Adventure
Caused by: java.lang.ClassNotFoundException: adventure.Adventure
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: adventure.Adventure. Program will exit.
Did I forget to add the src to some path? The way it looks in ubuntu is here:
It was committed with Java 7 but on the ubuntu I have only Java 6. Could it still work or do I need to completely harmonize Java versions?
Update
I cleaned the build path and set up the JARs again and I'm going to add the Java 6 JRE since I don't use any Java 7 specific features so it should work if I only get the JRE set up. But I don't know how to add my JRE with linux? I can try also with windows and then maybe I can add a suitable JRE. Now there is a build problem:
Thanks but now I have no JDK which looks like the main problem and just a build problem:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
String cannot be resolved to a type
at adventure.Adventure.main(Adventure.java:74)
My Java version seems well though:
$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.1) (6b24-1.11.1-4ubuntu3)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
The installed JRE is OpenJDK 6 that should work:
My classpath variables look like this
Usually Java projects should be committed without the bin folder (set it to ignore).
It looks like your project was checked-in including the compiled class files from Java 7 with of course can not be loaded by Java 6.
You should proceed as follows:
Open a terminal and change into your project directory
execute svn delete bin
execute svn propset svn:ignore bin .
Does anybody how to do this from whithin Eclipse?
Switch back to Eclipse and execute "Clean" command on the project so that Eclipse re-builds it using your Java version.
But I don't know how to add my JRE with linux?
You surely know Preferences->Java->Installed JREs. Please browse for your Java installations in usr/lib/jvm sub directories.

Compiling Scala^Z3 on Windows

I tried to compile Scala^Z3 on Win XP using Cygwin and JDK 1.7.0 but it didn't work out as expected.
I did the following:
- Use SBT 0.7.4
- Use current Scala^Z3 revision from github
- Use Cygwin and its gcc
- Use JDK 1.7.0 (javac)
"sbt update" was successfull.
"sbt package" end up in several errors stating undefined references like the following:
\psuter-ScalaZ3-35cb691\src\c/z3_Z3Wrapper.c:10: undefined reference to `_Z3_mk_config'
In order to make it work at all I changed ....\PSuterScalaZ3\psuter-ScalaZ3-35cb691\project\build\scalaz3.scala line 74 to:
lazy val gcc : ManagedTask = if(isUnix || is32bit) {
On the homepage it is stated that it should work for Windows, too. Does it at all?
Is there a precompiled jar available?
I saw a z3.jar here: http://lara.epfl.ch/~psuter/jniz3/z3.jar
This is a Linux Version too, I guess? Because it didn't work for me either...
Scala^Z3 is a really good piece of code (if i can get it to work ;))
Sorry about that, the sbt script indeed currently only works for Linux (and as you can tell by the absolute path, we're not quite used to having external users yet).
Here are the steps I use to compile it under Windows:
compile all Java sources with javac (there are no dependencies)
generate the header files using javah
compile all the Scala sources with scalac (using only the Java .class files as dependencies)
compile the .c + .h files with Visual Studio
manually create a jar file with everything
We also hope to release a precompiled .jar file with the shared library for Linux and Windows once we adapted Scala^Z3 to the new changes in Z3 3.1.
EDIT The GitHub repository now contains a precompiled .jar file prepared for Scala 2.9.1 and Z3 3.2. It works under Windows and Linux (32bit). The repository also contains more detailed instructions on how to compile the shared library in Windows, using MinGW instead of Visual Studio (hence removing the need for VS runtime libraries).
I had a similar problem some months back and here is what it I had to do in order to compile it with Visual Studio 2010. I am not sure if it is still relevant since Scala^Z3 and Z3 itself changed a lot, but I hope it nevertheless is helpful.
Created a new Visual C++ Win32 project (.NET Framework 4) for
creating DLLs.
Added all .h and .c files in the src/c/ directory. VC somehow
complained about the "inline" modifier and a work mate suggested to
remove them, which I did.
Added z3.h from Z3 2.19, Z3 2.16 wasn't accepted. Also added the
corresponding z3.lib (x86, haven't tried x64 yet). VC wouldn't accept
z3.dll and complaint about the file being corrupt. No clue why, Z3
itself works fine for me.
The project compiles with 13 warnings and a dll is created which
apparently MUST be named scalaz3.dll.
sbt compile, adding scalaz3.dll to lib-bin, jar the whole thing
together to scalaz3.jar
'scala -classpath scalaz3.jar test.scala' with scalaz3.jar and z3.dll
in the current folder works

Eclipse doesn't show java source code

I'm running java 1.6 in Eclipse on my Intel Mac. I'm using the 1.6.0 version under System/Library/Frameworks and set the default compiler to this in Eclipse.
How do I attach the source code?
First, I downloaded the 1.6 source from oracle, thinking I could attach that 'cause the installed 1.6 didn't have source.
When I click a java class to get the Source Code Editor, there are problems:
first, the top line says Compiled from File.java (version 1.5 : 49.0, super bit)
most important, when I attach the 1.6 source jar file, it gets an error:
An error has occurred. See error log for more details.
Unable to create resource org.eclipse.ui.internal.misc.ExternalProgramImageDescriptor#50417ba8
This also appears in the error log:
java.lang.ClassNotFoundException: org.eclipse.ui.internal.views.log.LogView
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
The Eclipse version is: Eclipse Java EE IDE for Web Developers.
Version: Helios Service Release 2
Build id: 20110218-0911
When I click for installation details, I get:
An internal error occurred during: "Fetching children of _SELF_".
Registry Directory not available: /Users/rfrail/Downloads/eclipse 2/p2/org.eclipse.equinox.p2.engine/profileRegistry.
I'm running Eclipse from my Download directory (it's worked fine in the past); however, there are 2 folders for Eclipse:
eclipse, and
eclipse 2.
So that looks like a source of confusion right there. Eclipse operates fine otherwise.
Can you help, please?
http://java.decompiler.free.fr/ is your answer
it has an eclipse plugin which decompiles code in place