问题标签 [javac]

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 投票
8 回答
56943 浏览

java - 如何使 JDK 成为默认 JRE?

我将 Eclipse 与 ant 脚本一起使用,Eclipse 与 Windows XP 上的默认 JRE 安装配合得很好。

当我想运行使用 javac-tag 编译的 ant 脚本时,烦恼就来了,因为类路径中没有 tools.jar,所以它失败了。

我的想法是,如果我可以让 JDK 成为 Windows 上的默认 Java,那么我将拥有我今天所拥有的东西,以及开箱即用的 ant。

这可以做到吗?我在安装过程中遗漏了什么?


编辑:我知道 JAVA_HOME,但这很乏味且容易出错(当更新的 JDK 可用时手动更新环境变量并不总是我记得的)。


编辑:我最终弄清楚了如何使 javac 任务使用 Eclipse 编译器(ecj.jar),它工作得非常好。


编辑:Maven 还支持使用 Eclipse 编译器,但这似乎很少使用,并且使用的是旧版本的 ecj.jar。我打算稍后再研究一下。


编辑:在 maven-compiler-plugin 3.0 中使用 ecj 效果很好,并且允许使用 JRE 进行构建。


编辑:我在解析 ecj 生成的字节码时遇到了 javadoc 工具崩溃的问题。

0 投票
1 回答
1622 浏览

java - Java 6.0 编译时内存不足错误

我知道如何在运行时使用 -Xmx -Xms,有没有办法让编译器分配更多的内存。我的电脑上有 2 个演出。我不使用 IDE 只是文本板。我正在尝试创建一个具有 10,000,000 位数字的 BigInteger 并对其进行操作。我尝试创建一个 StringBuffer 和 ensureCapacity(10000000) 并且它不会编译。是否有一个类可以用来告诉编译器在编译之前或编译时我需要更多的 ram?我确实阅读了有关 RunTime 方法的内容,并将继续乘以 BigInteger 并观察堆。我尝试将字符串嵌入代码“1000000”+ 等 10,000,000 位,它也不会编译。

0 投票
3 回答
11603 浏览

java - 使用 maven 为 Eclipse 编译器设置 Java 6 注释处理配置

为 Java 6 注释处理器设置 eclipse 项目编译器配置的最佳方法是什么?

我的解决方案是手动设置org.eclipse.jdt.apt.core.prefs和文件。factorypath这有点麻烦:

  • 引用 factorypath 文件中的处理器 jar
  • 在)中配置 eclipse 注释处理器输出目录(org.eclipse.jdt.apt.genSrcDir属性org.eclipse.jdt.apt.core.prefs
  • 将 eclipse 注释处理器输出目录添加为源文件夹

一个问题是 Eclipse 生成的源代码将使用 maven 进行编译。Onlymaven clean compile是可靠的,因为它删除了 eclipse 生成的源文件。(Eclipse 和 javac 生成的源文件可能不同步。)

是否有更好的解决方案来配置 maven 而无需在 maven 源路径中生成 eclipse 生成的源文件?

0 投票
4 回答
144324 浏览

ant - 在ant javac中设置Java的目标版本

我需要使用 ant (1.7.0) 编译一个 jar 文件以在特定版本的 Java (1.5) 下运行。我目前在我的机器上安装了 Java 1.6。我试过设置:

我也删除了

并且没有属性文件。我在 Linux/SUSE 上运行 Java 1.6

还有一种简单的方法可以确定 jar 文件中预期的 Java 版本。

0 投票
4 回答
5414 浏览

java - javac 抱怨:在枚举实现接口上找不到符号

我有如下定义的三种 java 类型:

主.java:

操作.java

操作定义.java

(这几乎正是 Effective Java 2nd ed.Item 30 中给出的示例)上面的代码在 eclipse 中编译和运行得很好,但是使用 Sun javac 我得到以下错误:

如果我将 Main.java 的第 12 行从更改return func.call(values);return ((Operation)func).call(values)编译正常。此外,如果我将三种类型(Operation、Main 和 OperationDefinitions)放在一起作为单个主类的三个子类,它也可以很好地编译。

所以我确实有解决我的问题的方法,但我想知道,为什么 javac 需要在这里强制转换,而 eclipse 不需要?这是 javac 还是 eclipse 中的错误?

我已经尝试过 Sun javac 1.5.0_19 和 1.6.0_16

0 投票
3 回答
5157 浏览

java - 为什么我不能在 cygwin 上编译我的 java 文件,当它需要来自 jar 的类时?

我正在尝试编译我的类以及提供的 .jar 文件,其中包含我的类将使用的类。

这是我一直在尝试的:

这是回应:

2 个错误

这是我的课:

WordSearch.jar 包含:

(WordSearchSolver.java 和 Wordsearch.jar 在同一个目录下)

我错过了什么吗?

0 投票
2 回答
650 浏览

eclipse - MyEclipse 如何在没有 javac 的情况下编译 Java 类?

在我的系统上,我安装了 Sun JRE(不是 JDK)和 MyEclipse IDE。

我在 Program Files(windows 平台)的 MyEclipse 安装文件中搜索了 javac.exe,但我得到了no results found for javac.exe.

MyEclipse 使用哪个工具来编译 .java 文件?

0 投票
8 回答
7033 浏览

java - 编译 Java 类时禁用编译时依赖项检查

考虑以下两个 Java 类:

此外,假设pkg.not.in.classpath.FooBar在类路径中找不到它。

第一个类将使用标准 javac 编译得很好。

但是,第二个类不会编译,javac 会给你错误信息"package pkg.not.in.classpath does not exist"

在一般情况下,错误消息很好,因为检查您的依赖项允许编译器告诉您是否有一些方法参数错误等。

虽然在编译时检查依赖关系很好也很有帮助,但在上面的示例中生成 Java 类文件并不严格需要 AFAIK。

  1. 你能举出任何例子,如果不执行编译时依赖检查,在技术上就不可能生成有效的 Java 类文件吗?

  2. 你知道有什么方法可以指示 javac 或任何其他 Java 编译器跳过编译时依赖检查吗?

请确保您的答案解决了这两个问题。

0 投票
9 回答
84458 浏览

java - 如何抑制有关已弃用 api 的 javac 警告?

当我编译时,javac 输出:

我想压制这个警告。尝试 -Xlint:none 似乎没有帮助。

0 投票
2 回答
23582 浏览

java - java编译器的源代码在哪里?

我正在寻找 Sun 的标准 java 编译器的源代码,javac.

jdk1.6.0_07 有一些相关的类,但它们是接口(java.lang.Compilerjavax.tools.JavaCompiler)。com.sun.mirror.*和下还有一些包com.sun.source.*,似乎是表示java抽象语法树的接口。

但我找不到编译器源 - 有人知道它在哪里吗?