Android Studio on mac : cant find System compiler - java

Im getting this on one of my macs when I try to compile even "hello world"
Error:Execution failed for task ':app:compileDebugJava'.
Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable to point to the according directory.
On my other mac, I dont have any problems. The setup is the same as far as I can tell. It's just that for some reason, on one machine, Android Studio / Gradle pops this error message.
I have set
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home
running /usr/libexec/java_home gives:
/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home
running javac -version gives :
javac 1.7.0_60-ea
running java -version gives:
java version "1.7.0_60-ea"
Java(TM) SE Runtime Environment (build 1.7.0_60-ea-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)
In Android Studio I have set file->other settings->default project settings-> JDK location to the JDK location listed above.
I've run out of options, why am I still getting this message?
thanks for any help, Ive wasted hours on this already.

My findings from an identical error proved to be due to a clash of Java Jar files that were not related with the Android studio install.
Specifically the tools.jar and auskey.jar under /Library/Java/Extensions
More info here

Rich_LogicBox solution also worked for me.
I've struggled for weeks with different java versions making no difference.
When I removed the jar files placed in /Library/Java/Extensions by auskey, the Android Studio error disappeared.

One possible solution is :
The android studio needs the jdk 1.6+ by default, but your JDK is 1.7.
You can show the package content of the Android Studioin Applications folder, and the open the info.plist, change the JVM version to your JDK's version, which is 1.7* here.
(you see, my JDK version is 1.8 in my computer)

Related

How to fix Java UnsupportedClassVersionError [duplicate]

This question already has answers here:
How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version
(51 answers)
Closed 1 year ago.
I've run into this error a few times trying to brush up on my Java. Looked up solutions on the internet and most suggestions were to compile or run the file with a flag/option argument to specify the correct interpreter version. My question is, is there a more permanent solution to this? (im using vscode. Guessing there is something i can add to my settings.json file in the workspace- but what?)
Error: LinkageError occurred while loading main class com.example.demo.DemoApplication
java.lang.UnsupportedClassVersionError: com/example/demo/DemoApplication has been compiled by a more recent version of the Java Runtime (class file version 59.65535), this version of the Java Runtime only recognizes class file versions up to 58.0
here is my version details
$ java --version
java 14.0.2 2020-07-14
Java(TM) SE Runtime Environment (build 14.0.2+12-46)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)
Id like to not have to use flags whenever I compile and run a java file from the command line. Bonus points to you if you can explain why this problem happens in the first place? back when i learned java, you used to have to download and install the JRE and JDK separately. I can understand mistakenly downloading incompatible versions, but now it seems the JRE comes prepackaged with the JDK. How is it possible to have incompatible versions of the compiler and interpreter if this is the case?
This error is telling you that your class was compiled at a higher version of Java than the version you are trying to run with. More specifically, in this case, you compiled your class with Java 15 and try to run it with Java 14.
Depending on your situation, you have two ways to resolve the error: compile your code with an earlier version of Java, or run your code on a newer Java version.
Fix via the Command Line. If you're ready to move entirely to a newer JDK, you should download the newer version and make sure your PATH and JAVA_HOME environment variables are set appropriately. Assuming you have Java 15 JRE, you can run your code with the java command packaged with it.
IntelliJ IDEA. You can also control the version of Java you're using for compiling and running in IntelliJ IDEA. Go to File -> Project Structure… -> Project Settings -> Project and change your Project SDK and Project language level. Next run your project on the newer JRE: go to Run -> Edit Configurations… and change your JRE to 15. Now, when you run your project, it will run with the Java 15 JRE.
java.lang.UnsupportedClassVersionError: com/example/demo/DemoApplication has been compiled by a more recent version of the Java Runtime (class file version 59.65535), this version of the Java Runtime only recognizes class file versions up to 58.0
Set the JDK the same one when you compile and run the project:
That's to say, your file was compiled by JDK15, but the current runtime, which is also installed on your machine is JDK14. The dismatch of build and compile jdk version caused this error.
There're two important configurations to correctly configure your environment and project: java.configuration.runtimes and java.home. The former specifies options for your project's execution environment; the latter specifies your language server's execution environment.
You've installed JDK14, set the above two settings to use it can solve this error.
"java.home": "\PATH TO JDK14\",
"java.configuration.runtimes": [
{
"name": "JavaSE-14",
"path": "\PATH TO JDK14\",
"sources": "\PATH TO JDK14\lib\src.zip",
"javadoc": "https://docs.oracle.com/en/java/javase/14/docs/api",
"default": true
},
],
Cleaning the Java Language Server Worspace and reload the window in VS Code, then run again.
More information about java.configuration.runtimes and java.home, please refer to Configure JDK.

Android Studio Setup - could not detect JDK

I'm trying to install the Android Studio on my Windows 7 notebook, but even when I filled the path with the JDK, occurs the following error:
I already set the environment variables JAVA_HOME, PATH, reboot the notebook, but still have problem. I'm using the "android-studio-bundle-141.2456560-windows" version and also the "jdk-7u79-windows-x64".
Could you please, help with this issue?
Have you tried to run java.exe -version in a terminal, if the jdk is installed it should return something like:
java version "1.8.0_72"
Java(TM) SE Runtime Environment (build 1.8.0_72-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode)
if not, you might want to reinstall it and reset the path.
What you might also want to do, is go to the jdk location and make sure it contains a directory named bin and see if it has the java.exe file in it.
In this link Android Studio ZIP, I did the download for windows after unzip all the file, I started execute the "studio.exe", that is inside the bin folder.
Thanks everyone for the help.
I downloaded Android Studio for windows, then I unzipped all the file. I started executing the "studio.exe", that is inside the bin folder. It worked.
Thanks everyone for the help.
#Victor W. Vieira this works fine for me. On Windows Professional x64-bit system.

Error when launching kickflip example app using Android Studio for Mac OS X 10.8.4

I am using Mac OS X 10.8.4. Recently i have started using android studio. I installed Homebrew and got installed gradle. I need to try the example for kickflip android SDK, so i checked out the project from GitHub. But the project is not getting launched. It is showing the error
Execution failed for task ':app:packageDebug'. > class org.bouncycastle.asn1.ASN1Primitive overrides final method equals.(Ljava/lang/Object;)Z
I know similar questions has been asked in the stackoverflow itself.
Problems launching error in Android Studio...
Android Studio 0.2.7 build exception with Gradle
Gradle error in app:packageDebug...
Android Studio Bouncy castle issue (newbie)
I tried the solutions provided in those but of no help.
I am using java 1.7.0_09. java -version gives
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
and the gradle is up todate. Please help if anyone encountered the same issue and got fixed.
I managed to get Kickflip running under Eclipse Kepler.
Here are the steps:
1. Download the android-sdk zip file from GutHub sdk
2. Import the sdk in Eclips
3. Move the files in java directory to src directory
4. Create a lib directory and move the armeabi directory in the lib directory
5. Move the lib jar files in the lib directory
6. remove the ffmpgwrapper jar file, because it also exists in the source directory, otherwise you get multiple dexes
7. increase the heap buffers in eclips.ini
-Xms512m
-Xmx1024m
Now it should work

Intellij IDEA using java7 compiler to compile when I have configured it to use Java6

I have set the Module SDK to 1.6
I have also set the Project SDK to 1.6
and I also change Java compiler options from setting to use java 6
but still it is using java 7 to compile. When I compile or run it gives following error
Using javac 1.7.0_11 to compile java sources
java: Errors occurred while compiling module 'SSLJava6'
Compilation completed with 1 error and 0 warnings in 1 sec
1 error
0 warnings
java: javacTask: source release 1.7 requires target release 1.7
Has anyone faced such problem before? What must be done?
Output of java -version
[aniket#localhost jndiProperties]$ java -version
java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode)
and my JAVA_HOME is also set to same.
Interesting.
Questions:
Check that c:\Users\$user\.IntelliJIdea12\config\options\jdk.table.xml has a reference to JDK6 only. This is what the file looks like for me:If there is a reference to a JDK 7 in there then delete the corresponding <jdk> element and restart Intellij.
I know that you have confirmed the java and javac path. Confirm the javac being used by writing a simple HelloWorld.java in a brand new Intellij project. If in the new project javac6 is used, then it's an issue with the old project configuration.
If there is a public JRE 7 lurking about, try un-installing it temporarily. After un-installation check that there is no cruft left behind in the Windows registry at HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
Check whether the build fails if you rename the JDK7 home dir. If so, try symlinking the JDK7 dir to point to the Java6 installation dir. In the windows world the following will work to do the symlink : mklink /J c:\Java7Home c:\ExistingJava6Home
Try setting your IDEA_JDK_64 environment variable to point to your java SDK you want intelliJ to use for example 'D:\Programs\Java\jdk1.9'.
I encountered this issue when installing the new java 9 early access jdk and trying to run it on intelliJ 15.
This fixed it on IntelliJ 16 EAP versions.

Java Exception when Trying to Run Grails

All - I just downloaded the latest grails (2.1.0) and JDK (1.7.0_07) on my Win7 64bit machine and configured my machine as follows:
1.) Added environment variables for Java and Grails
2.) Update PATH as appropriate
3.) Verified that everything installed correctly by executing java -version and grails -version
The java -version command works, and shows the following:
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
but the grails -version command yields the following error:
Exception: java.lang.RuntimeException thrown from the UncaughtExceptionHandler in thread “main”
I tried debugging by completely uninstalling all Java, then reinstalling, but the same error occurs. I verified that I installed the 64 bit version of Java.
More information about the error can be found at this website (Mike [the owner] directed me to Stackoverflow for more help).
Any idea is to why this occurred? What can I do to get Grails working? Thanks in advance for your help.
-Tom
Edit 1 from Vector's comment:
All variables are set properly and shown here:
GRAILS_HOME = C:\grails\grails-2.1.0
JAVA_HOME = C:\Program Files\Java\jdk1.7.0_07
Path = [lots of other stuff];%JAVA_HOME%\bin;%GRAILS_HOME%\bin;
Edit 2 Fixed java version number at top of problem statement (version is 1.7.0_07) per #crudolf
Answer: Thou shalt ensurest that thine box is set to Administrator . . . and the people rejoiced.
Apparently, Grails wants to write to C:\Users\Administrator.grails and C:\Users\Administrator.groovy. Even though I had admin rights on my machine (since I successfully installed Java), I apparently needed to click through into the Administrator folder in order for the preferences to be written that I wanted to use JDK.
All is well. Thanks everyone for your help.
I ran into this error after attempting to upgrade from Grails 2.1.0 to Grails 2.2.1 on Windows 7.
I simply had to delete the C:\User\%USERNAME%\.grails and C:\User\%USERNAME%\.groovy folders created by and leftover from Grails 2.1.0.
It appeared that Grails was loading some leftover cached JARs or configuration files of .grails and .groovy instead of %GRAILS_HOME%.
It took hours, but I learned my lesson - delete ".grails" and ".groovy" before running a new version of Grails!
I ran into this problem with Grails 2.4.0 and 2.2.4 on Windows 8.1 Pro. I noticed that the problem did not occur if I ran the grails command in an administrator cmd-shell. I then checked my Appdata\Local\Temp. It turned out that the security setting for the temp folder needed to be changed. After I gave Everyone the full access to Appdata\Local\Temp folder, the problem was solved. But you may need to check the security setting often because some Windows Apps reset the security setting.
I was having the same problem. I was having a working grails-2.2.4 with java-1.7.25 on a Windows 7 x86. But it suddenly stopped working today. I tried removing ~/.groovy and ~/.grails, but still got java.lang.RuntimeException thrown from the UncaughtExceptionHandler.
Finally, the problem was solved by removing ~/.m2 as well.
BTW, "set DEBUG=1" before starting "grails" in a Command Prompt will show the environment and parameters to launch Java.exe.
I was having a similar problem but in Ubuntu 12.04. I solved it by removing $GROOVY_HOME environment variable. If you also have $GROOVY_HOME variable try removing it.
Try deleting the file .grails_history file located in your %Home% directory.
This worked for me on Windows 8.1

Categories

Resources