问题标签 [tools.jar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6414 浏览

eclipse - 如何配置 Eclipse 和 Maven 来检测 jdk.tools?

我在 Eclipse 中有一个 maven 项目,我在其中使用了一些 hadoop 库(hadoop-common、hadoop-auth、hadoop-hdfs),这些库引入了对 jdk.tools 的依赖。当我在另一台机器上检查这个项目时,它工作正常,但在我的 pom.xml 上抱怨“缺少工件 jdk.tools:jdk:tools:jar:1.6”。我可以通过手动添加依赖项并在我的本地驱动器上指定文件(例如“${JAVA_HOME}/../lib/tools.jar”)来解决此问题,但我想了解为什么它可以在一台计算机上运行而不是在另一个 - 我假设我的设置有问题?

我尝试了以下方法:

通过将“-vm C:\Program Files\Java\jdk1.6.0_25\bin\javaw.exe”添加到我的 eclipse.ini 文件中,确保 Eclipse 在 JDK 中运行。在 Eclipse 首选项 Java -> Installed JREs 下列出的唯一 JRE 是相同的 JDK。尝试在 Eclipse 首选项 Maven -> Installations between "Embedded (3.0.4)"、"External (3.0.4)" 和 "External (2.2.1)" 中切换 maven 版本

也许我需要在我的 maven settings.xml 文件中添加/更改一些东西?

任何建议,将不胜感激!

仅供参考,我正在使用 Eclipse Java EE Juno SR1 和 M2E 1.2.0。

0 投票
4 回答
707 浏览

eclipse - Ant 在 Eclipse Indigo Service Release 2 中不工作

我的问题是我的简单构建脚本只会打印一条消息在 Eclipse Indigo Service Release 2 中不起作用。脚本如下 -

当我尝试执行此脚本时,它没有给我任何错误,但没有打印消息“Eclipse!”。它也没有终止脚本,它一直处于运行模式,我必须手动停止它。我的项目指向'JDK1.6.0_32'而不是JRE。像“tools.jar”这样的所有必要的罐子都在那里。请让我知道为什么会这样。


您好,谢谢大家的回复。是的,它在那里,完整的脚本是-

但仍然是同样的问题。它没有显示任何东西。可能问题出在配置中的其他地方。请告诉我。

0 投票
2 回答
1481 浏览

java - 以编程方式编译 java 文件

我知道这已经被问了很多,但我仍然没有一个好的解决方案,我仍然不明白某些部分。所以我需要以编程方式编译 *.java 文件。

是我正在使用的,并且(如预期的那样)编译器是null. 现在,我确实知道我必须使用 JDK 而不是 JRE 作为“运行时”,但这里有一些我不明白的地方:仅仅放入tools.jar应用程序的类路径然后访问还不够吗?到 Java 编译器 API?如果这是真的,那么独立的 Java 应用程序和基于 Web 的应用程序之间是否存在(我认为存在)差异。实际上,我正在尝试从 PlayFramework webapp 调用 JavaCompiler,所以我想通了,也许这个解决方案(包括tools.jar)仅适用于独立应用程序?

我还尝试创建一个自定义 ClassLoader 并使用反射调用上述方法,但我得到的只是null对象compiler

上面代码的解释:

  • 为了简单起见,我没有包括 try/catch。
  • app.classloader() 是一个播放方法,它返回 App 的 ClassLoader
  • tools.jar包含在 Play 项目的我的 lib 文件夹中(这意味着它位于项目的类路径中 - 根据 Play 文档)

我很确定在 Play 能够加载 Java Compiler 类之前我还需要做一些其他事情,我只是不知道我缺少什么。

我知道像 Eclipse JDT 编译器这样的选项Runtime.exec("javac myFile.java"),但这不是我想要的。

System.setProperty("java.home", "PATH_TO_YOUR_JDK");哦,然后类似的东西ToolProvider.getSystemJavaCompiler();正在工作,但我发现这个解决方案太难看了。

此致

编辑:(提供更多信息并反映最后状态)这是 web-app-structure 的基本表示:

MyJar.jar 现在有一个META-INF/MANIFEST.MF包含以下内容的文件:

在不启动 Play 应用程序的情况下,我正在尝试(在lib文件夹中):java -jar MyJar.jar- 我的简单main方法尝试调用 Compiler ( ToolProvider.getSystemJavaCompiler();) 并返回null. 所以这让我相信,这个问题与 Play 无关——在正常运行我的 Jar 时,我什至无法获得编译器!

0 投票
1 回答
3219 浏览

java - 为什么在 Linux 上使用 Java Attach API 会失败?(即使 Maven 构建完成)

我一直在使用 Java Attach API(tools.jar 的一部分)附加到正在运行的 java 进程,并从内部将其关闭。

它在 Windows 上完美运行。但是,当在 linux 上运行时尝试实际执行附加代码时,我得到一个java.lang.NoClassDefFoundError带有以下堆栈跟踪的原因...

我正在使用 Maven,到目前为止我有这个部分,以便包含 tools.jar。

值得注意的是 ${java.home} 评估为 jre,但即使我将其更改为 jdk 的直接路径,问题也是一样的。

我好难过...

0 投票
1 回答
2276 浏览

windows - Maven 找不到带有正确 JAVA_HOME 的 tools.jar

我在我的 Windows 机器上构建 Maven 项目时遇到了一些问题。我已经设置了我的 JAVA_HOME 环境变量并且 Maven 找到了它。

以下是一些执行的结果:

'哪个 mvn'

'mvn-版本'

注意:它确实在这里找到了正确的 JAVA_HOME 路径!

使用 Maven 构建:

如您所见,由于某种原因,它正在查找完全错误的目录。如果需要更多信息或者您知道如何解决此问题,请告诉我!谢谢!

0 投票
11 回答
80192 浏览

ide - 类路径中不存在 Android Studio 'tools.jar' 文件

我下载了当前版本的 Android Studio(最新版本为 2013 年 7 月 4 日)我还下载了 JDK 版本 7u25。

但是,启动后显示错误: 请确保 JAVA_HOME 指向 JDK 而不是 JRE。

我不知道如何解决这个问题,这不会让我运行 IDE。我将不胜感激任何帮助。

0 投票
5 回答
65327 浏览

java - tools.jar 位于哪里?

跑步CentOS 6Java 1.7.0_25 OpenJDK

安装后RPM我看到它说

位于哪里tools.jar?我检查了/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64

无处可寻。

0 投票
1 回答
97 浏览

java - 如何获取toos.jar的PAI指南和java源码

我不得不引用一些 tools.jar,它是 jdk lib 的一部分。我想获得它的帮助文档和java源代码。请告诉我如何获得它或在哪里下载。非常感谢你!

0 投票
2 回答
2400 浏览

java - 将 tools.jar 与 Java 应用程序包一起分发是否安全?

虽然tools.jar不是 JRE 中的组件,但它附带了所有主要的 JDK 实现,例如 Oracle JDK 和 OpenJDK。

不是 JRE 的标准组件意味着当我分发一个使用tools.jar.

我的问题是:

  • tools.jar 是否包含与平台相关的组件,这些组件会阻止它分布在不同的平台(Windows/Linux/OSX)上?
  • 我们已经知道 Oracle JDK 不允许分发tools.jar,但是 OpenJDK 呢,我们可以从 OpenJDK 分发 tools.jar 以避免许可问题吗?
  • 如果 tools.jar 不能与 Java 应用程序一起分发,是否有一种独立于平台的方法来确定其位置,以便可以将其放入类路径中?
0 投票
0 回答
1411 浏览

java - 找不到标志。符号:java类

我们javac以注解的形式为编译器实现了一些超魔力Processor。使用一些看似无辜的 java 源文件,我们会得到以下自相矛盾的错误消息:

@Trace 是我们正在尝试处理的注解的名称,但错误发生在其他一些类中,行号与正在处理的注解无关。注释处理器将 a 应用于TreeTranslator注释类的 AST,从而重写 AST 本身。

如果我们直接调用ant或调用javac,错误就会消失,并且注释处理器在 Linux 下似乎可以正常工作。在 Windows 下,第二次编译没有帮助,我们再次得到错误。当然,如果我们ant clean手动删除输出目录,即使在 Linux 上也会再次抛出错误。

JDK 1.7 和 1.6 都会出现以下错误消息(当然,注释处理器是使用相应的 tools.jar 编译的)。

看起来好像 javac 的类文件检查器认为那java是类,但绝对不是。我们项目的类路径中根本没有这样的类名,而且我们无处依赖它。不幸的是,该类在检查失败后并没有被写入文件系统,因此我们可以检查 - 可能严重损坏的 - 类文件。

什么可能导致如此令人费解的编译器错误?有没有办法在编译后检查失败的类文件并解开这个谜团?


我们设法将问题缩小到以下几点:

有一个类,say Wtf,它包含一个 switch 语句切换枚举(参见https://stackoverflow.com/a/4319152/560450)或其他一些匿名内部类。如果类,比如说AA,,,BB和继承自CC并包含至少一个方法(似乎跳过检查空类),并且注释处理器生成的AST部分包含对其他东西的引用,那么,和,即除了字典顺序之外的所有后代都会产生错误。原因可能是与加载内部类和解析对DDWtfjavacjava.lang.Objectjava.langBBCCDDjavacjava.lang,或其他一些曲折的小方法调用,都一样。