Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-1.5.0-gcj-4.5/lib/tools.jar 求解

本文解决了一个在使用Android NDK进行JavaJNI项目编译时遇到的问题,即无法找到tools.jar文件。通过更改默认JRE设置,成功解决了此问题,并提供了详细的步骤和解决方法。

       在做java JNI项目时,遇到了这样的错误,详情如下:

Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-1.5.0-gcj-4.5/lib/tools.jar
Buildfile: /home/dell/android-ndk-r6/samples/stringJnienv/build.xml
    [setup] Android SDK Tools Revision 12
    [setup] Project Target: Android 1.6
    [setup] API level: 4
    [setup]
    [setup] ------------------
    [setup] Resolving library dependencies:
    [setup] No library dependencies.
    [setup]
    [setup] ------------------
    [setup]
    [setup] WARNING: No minSdkVersion value set. Application will install on all Android versions.
    [setup]
    [setup] Importing rules file: tools/ant/main_rules.xml

-debug-obfuscation-check:

-set-debug-mode:

-compile-tested-if-test:

-pre-build:

-dirs:
     [echo] Creating output directories if needed...

-aidl:
     [echo] Compiling aidl files into Java classes...

-renderscript:
     [echo] Compiling RenderScript files into Java classes and RenderScript bytecode...

-resource-src:
     [echo] Generating R.java / Manifest.java from the resources...

-pre-compile:

compile:
    [javac] /home/dell/android-sdk-linux_x86/tools/ant/main_rules.xml:384: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 1 source file to /home/dell/android-ndk-r6/samples/stringJnienv/bin/classes

BUILD FAILED
/home/dell/android-sdk-linux_x86/tools/ant/main_rules.xml:384: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/lib/jvm/java-1.5.0-gcj-4.5/jre"


电脑详情:

系统:ubuntu 11.4

处理器:AMD

开发环境JDK :java-6-sun-1.6.0.26

运行环境JRE:sun-java6-jre



刚开始以为是  java-1.5.0-gcj-4.5有问题,就盲目的删除重装。然而,这些不起作用。

无奈之下,四处GOOGLE。终于找到了解决方法,如下:

           在终端输入命令:dell@ubuntu:/usr/lib/jvm/java-1.5.0-gcj-4.5$ sudo update-alternatives --config java

           显示如下信息:

           有 3 个候选项可用于替换 java (提供 /usr/bin/java)。

  选择       路径                                优先级  状态
------------------------------------------------------------
* 0            /usr/bin/gij-4.5                       1045      自动模式
  1            /usr/bin/gij-4.4                       1044      手动模式
  2            /usr/bin/gij-4.5                       1045      手动模式
  3            /usr/lib/jvm/java-6-sun/jre/bin/java   63        手动模式

要维持当前值[*]请按回车键,或者键入选择的编号:3
update-alternatives: 使用 /usr/lib/jvm/java-6-sun/jre/bin/java 来提供 /usr/bin/java (java),于 手动模式 中。


如上,我选择了3,然后就大功告成了。


究其原因,是java的默认jre选择错误,上面的操作也是用来更改默认jre的。

希望对大家有帮助!

如果认为好的话,请留言!谢谢!


<think>好的,我现在需要帮助用户找到Flink的flink-connector-files-1.17.2.jar文件的存储路径或所在磁盘位置。首先,我需要回忆一下Flink的常见目录结构。通常,用户安装Flink时,主目录位于/opt/module/flink-1.17.0这样的路径下,比如用户提供的引用里提到了/opt/module/flink-1.17.0/lib/,这说明lib目录是存放依赖jar包的地方。 用户提到他们之前上传过其他jar包到lib目录下,比如flink-sql-connector-hive和mysql-connector-j。所以第一步,我应该建议用户检查Flink安装目录下的lib文件夹,特别是/opt/module/flink-1.17.0/lib/,看看目标文件是否已经存在那里。 如果用户没有在lib目录下找到,接下来可能需要考虑其他可能的路径。比如,Maven的本地仓库通常位于用户目录下的.m2/repository,路径类似~/.m2/repository/org/apache/flink/flink-connector-files/1.17.2/。如果用户是通过Maven下载的依赖,可能文件会在这里。 另外,用户是否使用过Flink的Docker镜像?如果是,可能需要进入容器内部查找,比如在/opt/flink/lib/目录下。不过用户的问题中没有提到Docker,可能暂时不需要优先考虑这点。 如果上述路径都找不到,可能需要用户通过系统搜索命令来查找,比如使用find或者locate命令。例如,执行sudo find / -name "flink-connector-files-1.17.2.jar"来全局搜索。不过需要注意权限问题,可能需要sudo权限才能访问某些目录。 另外,还要考虑用户是否可能手动下载过该jar包并放在其他自定义路径下,比如下载到用户的Downloads目录或者项目特定的libs文件夹中。这时候需要用户回忆或检查可能的下载位置。 最后,如果用户确认没有该文件,可能需要从官方渠道下载,比如Maven仓库或者Flink官网,然后按照之前的做法上传到lib目录下。同时提醒用户检查版本号是否完全匹配,避免因版本差异导致的问题。 总结一下,回答的步骤应该是先检查Flink的lib目录,然后Maven仓库,接着系统搜索,最后考虑下载。同时引用用户提供的例子中的路径作为参考,这样用户更容易理解。</think>根据Flink组件部署规范及文件存储路径分析,flink-connector-files-1.17.2.jar文件可能存在于以下位置: 1. **Flink主目录lib子目录** $$ /opt/module/flink-1.17.0/lib/ $$ 这是Flink核心依赖的标准存储路径,如引用[1]所示的上传jar包规范路径[^1] 2. **Maven本地仓库路径** $$ \~/.m2/repository/org/apache/flink/flink-connector-files/1.17.2/ $$ 若通过Maven依赖下载,默认存储在用户目录的.m2文件夹中 3. **Flink Docker镜像内部路径** $$ /opt/flink/lib/ $$ 在容器化部署场景下,该路径是标准库文件存储位置 4. **自定义部署路径** 可执行全局搜索命令: ```bash sudo find / -name "flink-connector-files-1.17.2.jar" 2>/dev/null ``` 建议优先检查Flink主目录的lib子目录,如引用[2]所示的节点部署路径[^2]。若未找到,可通过以下方式获取: 1. 访问Maven中央仓库下载: $$ https://mvnrepository.com/artifact/org.apache.flink/flink-connector-files/1.17.2 $$ 2. 使用Flink官方发行包中的lib目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值