Tag: 编译器构造

将java编译成本机代码?

我正在尝试找到一个java编译器,我可以用它将我的java代码编译成不同操作系统上的本机二进制文件。 我听说过GNU Compiler for Java但我似乎无法找到它的下载,我认为它已经死了。 有没有任何好的最新编译器,我可以用它来编译java代码到.exe和.app或任何东西,或者你能告诉我如何获得GNU编译器的Java。

编译错误 – 用枚举切换

可能重复: 为什么我得到的枚举常量引用不能在案例标签中合格? 嗨,有人知道为什么当我切换Enum时,案例应该是不合格的Enum值吗? 例: switch(var) { case Enum.FIRST: break; } 是非法的 但: switch(var) { case FIRST: break; } 是合法的。 我理解var是特定类型(Enum),但是如果我使用Enum值的完全限定名称,编译器为何会关心?

“方法对于类型是不明确的”但类型不是模糊的(错误来自从Eclipse 3.7.2升级到eclipse 4.2)

我定义了: public static int[] getArray( final int… params ) { return params; } public static T[] getArray( final T… params ) { return params; } 我用它 getArray( 1, 2 ) 现在我在eclipse 4.2中得到了编译错误: 方法对于类型是不明确的 但正如你所看到的,这并不含糊。 我能做什么?

如何让java maven构建失败以获得编译器警告?

我在尝试: org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.6 1.6 -Werror true 但没有快乐。 现在有任何想法可以在这篇博客文章中提出的中等错误吗?

Java 5中动态编译的选项

除了Janino之外还有其他选项可以在v5中实时编译和执行Java代码吗? 我知道v6有编译器API,但我需要使用v5 VM。 我基本上需要获取一个包含完整Java类的字符串,编译它并将其加载到内存中。

免费的AOT Java编译器

有谁知道一些免费的AOT Java编译器? 我找到了一个 – http://gcc.gnu.org/java/ 。

Javagenerics在Eclipse中编译,但不在javac中编译

我必须发现我的项目中有Java代码,它在Eclipse中编译并运行良好,但在javac中抛出了编译错误。 一个独立的片段: import java.util.HashSet; import java.util.Set; public class Main { public static void main(String[] args) { Set setOfInts = new HashSet(); Set setOfObjects = covariantSet(setOfInts); } public static Set covariantSet(Set set) { return new HashSet(set); } } javac中的编译返回: Main.java:10: incompatible types found : java.util.Set required: java.util.Set Set setOfObjects = covariantSet(setOfInts); ^ 此错误现在阻止在Maven中构建项目。 由于Eclipse编译器构建得更宽容,我现在必须假设片段的定义和用法如上所述静态方法是无效的Java?

访问`this`的字段初始化程序:在C#中无效,在Java中有效吗?

一,介绍: 这段代码: class C { int i = 5; byte[] s = new byte[i]; } 无法编译时出现以下错误: 字段初始值设定项不能引用非静态字段,方法或属性`C.i’ Resharper说了类似的东西: 无法在静态上下文中访问非静态字段i 。 这与C#规范所说的一致 – 字段初始化程序无法访问当前正在创建的实例( this ),或者通过扩展,访问任何实例字段: 实例字段的变量初始值设定项无法引用正在创建的实例。 因此,在变量初始化程序中引用它是一个编译时错误,因为变量初始化程序通过简单名称引用任何实例成员是编译时错误。 但是,这在Java中运行得很好: class C { int i = 5; byte s[] = new byte[i]; //no errors here } 还在我这儿? 好的,这是问题所在。 呃,问题。 在一个假设的世界中,这在C#中是有效的,我想知道:它甚至可能吗? 如果是这样,它会增加到表中的利弊是什么? 另外,既然Java真的支持它, 那么为 Java 做同样的优点/缺点吗? 或者类型初始化程序在两种语言中的工作方式有根本区别吗?

标准的Sun javac可以进行增量编译吗?

最近我开始使用Eclipse的java编译器,因为它比标准的javac快得多。 我被告知它更快,因为它执行增量编译。 但我仍然有点不确定,因为我找不到任何关于这两者的权威文档 – eclispse’s和sun’s – 编译器“增量function”。 是不是Sun的编译器总是编译每个源文件而Eclipse的编译器只编译已更改的文件和那些受此类更改影响的文件? 编辑:我没有使用Eclipse autobuildfunction,而是我正在设置 -Dbuild.compiler=org.eclipse.jdt.core.JDTCompilerAdapter 为我的ant构建。

编译为java字节码(不使用Java)

我的编译器类正在创建一个我们打算编译为Java Bytecode的语言。 我们已经取得了很多进展,并且正在接近代码生成的时间。 我们在查找有关如何从编译器创建.class文件的信息时遇到问题。 你有什么资源可以给我们一些帮助吗? 我们已经有很多关于指令集的文档,但需要有关如何直接填写类文件/ hex的写入的信息。 我们不需要有关反编译.class文件的信息或建议。 即使是从头开始编写.class文件的简单示例也是非常好的。 JVM规范不是我们追求的。 我们真正需要的是一个例子或演练。