Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

No Java runtime found #93

Open
Open

Description

@wendymungovan

I just installed atom and ide-java on linux mint. No matter what I set the java home to for IDE-java I get a IDE-Java could not lanuch your java runtime. No java runtime found at:... error.

I've tried several things restarted, set the environment variable for JAVA_HOME (/usr/lib/jvm/java-11-openjdk-amd64), re-installed ide-java. java and javac work fine from the command line and atom just does not seem to be able to see it. The only thing in the console window is:
Uncaught (in promise) undefined ... server-manager.js line 5 over and over.

Any help you have would be great. Thank you.

Activity

  1. marcelovue commented on Jan 19, 2019

    @marcelovue

    I know its a little old, but I was having a similar issue, try to setup the bin folder of this JAVA_HOME inside your PATH variable. https://stackoverflow.com/questions/19013725/linux-mint-adding-environment-variables-permanently

  2. wendymungovan commented on Jan 22, 2019

    @wendymungovan
    Author

    Thanks - I'm still having the problem so I will take any help i can get. :)

    $ more .pam_environment
    JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/
    PATH DEFAULT=${PATH}:${JAVA_HOME}

    and then restarted atom. I'm still having the same problem (i tried with and with out the bin folder specified).

    I thought it might be a permissions problem but everyone has access to java and javac (same permissions not shown). Does atom run a nobody?

    $ ls -la /usr/lib/jvm/java-11-openjdk-amd64/bin/java
    -rwxr-xr-x 1 root root 10344 Nov 13 07:53 /usr/lib/jvm/java-11-openjdk-amd64/bin/java

  3. marcelovue commented on Jan 22, 2019

    @marcelovue

    JAVA_HOME variable is not supposed to have the /bin directory, I'm not sure about how u set ur system up, but I think it could be like so:

    JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    PATH DEFAULT=${JAVA_HOME}/bin
    

    At least it is what we do in windows.

  4. wendymungovan commented on Feb 26, 2019

    @wendymungovan
    Author

    That still does not do it.

  5. LJacobsonMT commented on Feb 19, 2020

    @LJacobsonMT

    I have the same issue using it on Fedora r31 Didn't found a solution yet.

  6. PVoola commented on Jun 26, 2020

    @PVoola

    I've been facing the same issue on mac os - though the java path is set correctly, I still get "Error: Could not find or load main class'".

    Appreciate if anyone can help me

  7. xenonwellz commented on Oct 12, 2020

    @xenonwellz

    In your ide java configuration, remove the bin folder directory...
    It should now look like something like this
    C:\Program Filess\Java\jdk-11.0.8
    Good luck...

  8. iracanyes commented on Oct 7, 2022

    @iracanyes

    Hi,
    I've found that the error comes from the code of the module.
    Even if the JAVA_HOME, JDK_HOME are set correctly in environment variable or settings in atom.
    Ex: C:\path\to\openjdk\jdk-17.0.4.101-hotspot\
    The module will throw an error if the command java -showversion cannot be parsed correctly

    Ide-java access the java path with the follow code:

      getJavaPath () {
        return (new Array(
          atom.config.get('ide-java.javaHome'),
          process.env['JDK_HOME'],
          process.env['JAVA_HOME'])
        ).find(j => j)
      }
    

    When Java path is set correctly following one of the 3 ways (in settings, or in environment variables of OS)
    The module check for the version of java using a regex pattern for finding the version of Java.

      getJavaVersionFromOutput (output) {
    
        const match = output.match(/ version "(\d+(.\d+)?)(.\d+)?(_\d+)?(?:-\w+)?"/)
        return match != null && match.length > 0 ? Number(match[1]) : null
      }

    The problem is that with the OpenJDK version 17.0.4.1, the regex will return null.

    "openjdk version \"17.0.4.1\" 2022-08-12 OpenJDK Runtime Environment Temurin-17.0.4.1+1 (build 17.0.4.1+1) OpenJDK 64-Bit Server VM Temurin-17.0.4.1+1 (build 17.0.4.1+1, mixed mode, sharing)"
    

    The code below returns null.

    'openjdk version "17.0.4.1" 2022-08-12 OpenJDK Runtime Environment Temurin-17.0.4.1+1 (build 17.0.4.1+1) OpenJDK 64-Bit Server VM Temurin-17.0.4.1+1 (build 17.0.4.1+1, mixed mode, sharing)'.match(/ version "(\d+(.\d+)?)(.\d+)?(_\d+)?(?:-\w+)?"/)

    The solution would be to adapt the regex pattern for all possible output version. The second sub-group starting from the last of the regex pattern (_\d+)? in my case is the one causing the error.
    If the arrow base was intented, may be a solution like ((_\d+)?|(.\d+)?) would solve the problem. Or simply changing the arrow base to a dot, if the arrow base was unintended.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions