【问题标题】:The full pathname of a JDK installation for Oracle SQL DeveloperOracle SQL Developer 的 JDK 安装的完整路径名
【发布时间】:2014-04-05 05:15:15
【问题描述】:

我想用这个命令在 Ubuntu 上运行 Oracle SQL Devloper

sh sqldeveloper/sqldeveloper.sh

然后我收到了这条消息:

输入 JDK 安装的完整路径名(或 Ctrl-C 退出), 路径将存储在 /home/aimad/.sqldeveloper/4.0.0/product.conf

所以我给jdk的路径如下:

/usr/lib/jvm/java-7-openjdk-i386/

但后来我收到了这条消息:

错误:Java home /usr/lib/jvm/java-7-openjdk-i386//bin/java 不是 JDK。不支持在 JRE 下运行 SQL Developer。

【问题讨论】:

    标签: java linux oracle ubuntu oracle-sqldeveloper


    【解决方案1】:

    对我来说,这是类似的错误。我只是通过插入解决了它

    SetJavaHome /usr/lib/jvm/java-7-openjdk-amd64/
    

    进入 ~/.sqldeveloper/4.0.0/product.conf 文件。

    【讨论】:

    • @haidarvm 不是吗?
    • @Line I was done with /bin 也犯了错误
    • 好答案,我必须删除尾部斜杠才能让我的工作
    • 非常感谢。如果您遇到此异常,设置 JavaHome 也很有用:java.lang.UnsatisfiedLinkError: Can't load library: libawt_xawt.so
    【解决方案2】:

    我同意 szabozoltan 的回答,但对此应该有一些解释:

    SetJavaHome /usr/lib/jvm/java-7-openjdk-amd64/
    

    这个我们需要保存在 product.conf 文件中。为了打开该文件,我们需要输入以下命令:

    sudo gedit /home/abc/.sqldeveloper/4.0.0/product.conf
    

    在此之后,键入以下命令。

    ./sqldeveloper.sh
    

    就是这样,您的 SQL 开发人员 将被打开。

    【讨论】:

    • 只是想补充一点,/home//.sqldeveloper//product.conf 优先于 SQL_DEVELOPER_HOME/sqldeveloper/bin/sqldeveloper.conf
    • 我认为这应该是对上述答案的评论。
    【解决方案3】:

    您只安装了 Java JRE,您需要安装 JDK 才能使用 Oracle SQL Devloper。

    TL;DR

    安装JDK,在终端输入sudo apt-get install openjdk-7-jdk

    检查JDK是否安装

    要检查您是否安装了 JDK,请在终端中输入 aptitude search openjdk-7-jdk。如果您在任一包旁边看到i,则说明它已安装。例如,我的机器上安装了 64 位 JDK,这是输出。

    $ aptitude search openjdk-7-jdk
    i   openjdk-7-jdk                                   - OpenJDK Development Kit (JDK)                            
    p   openjdk-7-jdk:i386                              - OpenJDK Development Kit (JDK) 
    

    如果包旁边没有i,则说明没有安装。

    安装JDK

    要在 ubuntu 中安装 JDK,您需要安装软件包 openjdk-7-jdk。通过在终端中运行 sudo apt-get install openjdk-7-jdk 进行安装。

    设置 JAVA_HOME

    安装 JDK 后,您需要设置 JAVA_HOME 环境变量。 你可以通过运行update-java-alternatives -l查看你机器上所有安装的JDK,选择你要使用的并复制第三个字段,这个字段是那个JDK的JAVA_HOME。

    例如,在我的机器上

    $ update-java-alternatives -l
    java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
    

    这意味着我只安装了一个 JDK,java-1.7.0-openjdk-amd64,它的 JAVA_HOME 是 /usr/lib/jvm/java-1.7.0-openjdk-amd64

    接下来,设置 JAVA_HOME 环境变量,在 Bash 中,我将通过从终端运行它来设置它:

    $ export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
    

    检查以确保设置正确。

    $ echo $JAVA_HOME
    /usr/lib/jvm/java-1.7.0-openjdk-amd64
    

    这将为您当前的终端会话设置 JAVA_HOME,不必担心再次设置它,您可以将其添加到您的 ~/.bashrc 文件中。

    运行 Oracle SQL Developer

    安装 JDK 并设置 JAVA_HOME 环境变量后,您可以进入 sql developer 目录并运行 sqldeveloper.sh 脚本。

    $ cd sqldeveloper
    $ ./sqldeveloper.sh
    

    如果 sqldeveloper.sh 不可执行,请运行 chmod +x sqldeveloper.sh 并再次运行脚本。

    检查所有 Java 包

    为了完整起见,您可以通过运行aptitude search openjdk-7 来检查您安装了哪些 Java 包。如果您安装了 JRE,您将在以 openjdk-7-jre 开头的包旁边看到一个 i

    $ aptitude search openjdk-7
    p   openjdk-7-dbg                                   - Java runtime based on OpenJDK (debugging symbols)        
    p   openjdk-7-dbg:i386                              - Java runtime based on OpenJDK (debugging symbols)        
    p   openjdk-7-demo                                  - Java runtime based on OpenJDK (demos and examples)       
    p   openjdk-7-demo:i386                             - Java runtime based on OpenJDK (demos and examples)       
    p   openjdk-7-doc                                   - OpenJDK Development Kit (JDK) documentation              
    i   openjdk-7-jdk                                   - OpenJDK Development Kit (JDK)                            
    p   openjdk-7-jdk:i386                              - OpenJDK Development Kit (JDK)                            
    i   openjdk-7-jre                                   - OpenJDK Java runtime, using Hotspot JIT                  
    p   openjdk-7-jre:i386                              - OpenJDK Java runtime, using Hotspot JIT                  
    i   openjdk-7-jre-headless                          - OpenJDK Java runtime, using Hotspot JIT (headless)       
    p   openjdk-7-jre-headless:i386                     - OpenJDK Java runtime, using Hotspot JIT (headless)       
    i   openjdk-7-jre-lib                               - OpenJDK Java runtime (architecture independent libraries)
    v   openjdk-7-jre-lib:i386                       -                                                          
    p   openjdk-7-jre-zero                              - Alternative JVM for OpenJDK, using Zero/Shark            
    p   openjdk-7-jre-zero:i386                         - Alternative JVM for OpenJDK, using Zero/Shark            
    p   openjdk-7-source                                - OpenJDK Development Kit (JDK) source files               
    p   uwsgi-plugin-jvm-openjdk-7                      - Java plugin for uWSGI (OpenJDK 7)                        
    p   uwsgi-plugin-jvm-openjdk-7:i386                 - Java plugin for uWSGI (OpenJDK 7)                        
    p   uwsgi-plugin-jwsgi-openjdk-7                    - JWSGI plugin for uWSGI (OpenJDK 7)                       
    p   uwsgi-plugin-jwsgi-openjdk-7:i386               - JWSGI plugin for uWSGI (OpenJDK 7) 
    

    【讨论】:

    • 那么下一步是什么?
    • @VikasGoel 我添加了一个关于在安装 JDK 后运行 SQL Developer 的部分。基本上,你必须设置 JAVA_HOME 环境变量,然后运行 ​​sqldeveloper.sh 脚本。
    • 为什么你认为OP没有安装jdk?从他的问题我会不这么认为。
    • @Line The OP's error was "Error: Java home /usr/lib/jvm/java-7-openjdk-i386//bin/java is not a JDK. Running SQL Developer under不支持 JRE。” OpenJDK 发行版具有可用的 JRE 和 JDK 构建,OP 已安装 JRE 构建,因此出现错误消息。在 Ubuntu 中,不同的包是 openjdk-7-jre 和 openjdk-7-jdk
    • 我还是不明白你怎么知道 OP 安装了什么。我在问,因为它看起来像是从目录名称来看是 JDK,而且我从我的经验中知道,这个错误不一定意味着你指向的是 JRE 而不是 JDK。
    【解决方案4】:

    刚刚解决了这个问题,不像你那样添加斜线,所以而不是

    /usr/lib/jvm/java-7-openjdk-i386/

    类型

    /usr/lib/jvm/java-7-openjdk-i386

    【讨论】:

      【解决方案5】:

      如果您使用 Oracle 的 JDK,只需输入 /usr/java/default 并按 Enter。

      【讨论】:

        【解决方案6】:

        只需将下面的一个插入到 ~/.sqldeveloper/4.0.0/product.conf 文件中。

        SetJavaHome /usr/lib/jvm/java-7-openjdk-amd64/
        

        【讨论】:

          【解决方案7】:

          我遇到了类似的问题,只需添加“SetSkipJ2SDKCheck true”即可解决 到以下文件之一。

          /home/abc/.sqldeveloper/4.1.5/product.conf
          /opt/sqldeveloper/sqldeveloper/bin/sqldeveloper.conf
          

          【讨论】:

          • 这看起来不像解决方案,不知道是什么原因
          【解决方案8】:

          在我的情况下 (Oracle SQL Developer 4.1.3) 它似乎是 Java 版本的问题 - 当我指向 Java 8 JDK 而不是 11 时,它开始了立即工作。

          【讨论】:

          • 如果要使用 Java 11,请使用 SQL Developer v19.2,而不是 Java 11 之前发布的版本 4.1.3...
          【解决方案9】:

          我也遇到过类似的问题。尝试了已发布的建议,但未成功。可能是我使用sdkman 来管理java 版本的原因,可能是因为Mac OS 的权限。

          对于 Mac 用户来说,尝试管理配置很重要:

          • 在 ~/.sqldeveloper/{{sql-dev-version}}/product.conf 中尝试SetJavaHome {{path to your java}}

          如果您使用 brew 按照默认路径安装的 jdk,此步骤可能会有所帮助。

          如果您使用sdkman 安装了openjdk,则java 路径将类似于~/.sdkman/candidates/java/{{java-version}},并且该路径需要使用别名映射到默认期望。

          我没有关于默认路径的信息,所以它需要找到可执行文件:

          • 启动sqldeveloper(显示error message);
          • 在终端尝试ps ux | grep sql - 它将帮助您检测可执行文件位置sqldeveloper.sh
          • 用文本编辑器打开文件:
            • 删除或注释试图从默认位置/usr/libexec/java_home获取java的块;
            • 找到带有export JAVA_HOME=$TMP_PATH 的行并将路径替换为您的java home 路径,或者如果在操作系统设置中指定了JAVA_HOME,则直接删除行。

          【讨论】:

            【解决方案10】:

            在较新的版本中,我需要扩展路径

            /Users/{{yourUsername}}/.sqldeveloper/21.2.1/product.conf
            
            SetJavaHome /Library/Java/JavaVirtualMachines/jdk-11.0.13.jdk/Contents/Home
            

            【讨论】:

              【解决方案11】:
               apt-get install openjdk-6-jre
               apt-get install openjdk-7-jre
               apt-get install openjdk-6-jdk
               apt-get install openjdk-7-jdk
               add-apt-repository ppa:webupd8team/java
               apt-get update
               apt-get install oracle-java7-installer 
              

              【讨论】:

                猜你喜欢
                • 2014-08-14
                • 2015-10-23
                • 2019-08-19
                • 1970-01-01
                • 1970-01-01
                • 2019-02-24
                • 2021-02-12
                • 1970-01-01
                • 2011-01-08
                相关资源
                最近更新 更多