Tag: javac

Java编译器和JVM编写的语言是什么?

Java 编译器 ( javac ),虚拟机(JVM)和java启动器编写的语言是哪种?

ant警告:“'包括'未被设置'

我收到以下警告: [javac] build.xml:9: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds 这是什么意思?

Javac:将警告视为错误

我有一个编译我的程序的Ant文件。 如果编译器报告任何警告,我希望javac任务失败。 任何线索如何做到这一点?

如何在命令行中编译多个java源文件

我是新的Java命令行构build。 在eclipse中,我只需要在示例项目中编写源代码,并自动生成。 我知道javac file1.java —–> file1.class如果file1.java是唯一的源文件,我可以用java file1来运行它。 但是,如果我有2个源文件,file1.java file2.java 我如何构build程序? 非常感谢!

如何编译一个编码为“UTF-8”的java源文件?

我保存了我的Java源文件,指定它的编码types为UTF-8(使用记事本,默认情况下记事本的编码types是ANSI),然后我试着编译它: javac -encoding "UTF-8" One.java 但它给了一个错误消息“ One.java:1: illegal character: \65279 ?public class One { ^ 1 error 有没有其他办法,我可以编译这个? 这里是来源: public class One { public static void main( String[] args ){ System.out.println("HI"); } }

如何故意导致自定义的java编译器警告消息?

我正在做一个丑陋的临时黑客,以解决一个阻塞问题,而我们等待一个外部资源被修复。 除了用一个大的吓人的评论和一堆FIXMEs来标记,我很想让编译器提醒一个明显的警告信息,所以我们不要忘记把它写出来。 例如,像这样的东西: [javac] com.foo.Hacky.java:192: warning: FIXME temporary hack to work around library bug, remove me when library is fixed! 有没有一种方法,我可以导致一个故意的编译器警告与我select的消息? 如果做不到这一点,那么添加到代码中的最简单的东西就是抛出一个已经存在的警告,在违规行中可能会有一个string中的消息,这样就会在警告消息中打印出来? 编辑:过时的标签似乎没有为我做任何事情: /** * @deprecated "Temporary hack to work around remote server quirks" */ @Deprecated private void doSomeHackyStuff() { … } eclipse中没有编译器或运行时错误,或者来自Sun的javac 1.6(从ant脚本运行),它肯定会执行这个函数。

generics是引用不明确的

generics和方法重载在这里我有一个相当棘手的情况。 看看这个例子类: public class Test { public <T> void setValue(Parameter<T> parameter, T value) { } public <T> void setValue(Parameter<T> parameter, Field<T> value) { } public void test() { // This works perfectly. <T> is bound to String // ambiguity between setValue(.., String) and setValue(.., Field) // is impossible as String and Field are incompatible Parameter<String> […]

用javax.tools.JavaCompiler在内存中完全编译代码

我正在使用javax.tools包(JDK 1.7)中的JavaCompiler来编译一些东西,如下所示: compiler.run(null, null, "-cp", paths, "path/to/my/file.java"); 它的工作原理,但我想这样做在内存中(例如传递一个string的代码,而不是源文件,并获取字节码不是.class文件)。 我发现扩展InputStream和OutputStream参数是没用的,因为它可能和控制台中的一样。 你知道一种方法来使运行方法像这样工作吗? 或者你知道用getTask()方法做到这一点的确认方式? (扩展FileManager看起来很容易,但并不那么容易:)

javac选项recursion地编译给定目录下的所有java文件

我正在使用javac编译器来编译我的项目中的java文件。 这些文件分布在如下几个包中: com.vistas.util , com.vistas.converter , com.vistas.LineHelper , com.current.mdcontect 。 每个包都有几个java文件。 我正在使用这样的javac: javac com/vistas/util/*.java com/vistas/converter/*.java com.vistas.LineHelper/*.java com/current/mdcontect/*.java (在一行中) 我怎样才能让编译器recursion地编译父com目录中的所有java文件?

javac和Eclipse编译器有什么区别?

Eclipse的Java编译器只是javac程序包装的同一个核心的一个包装,还是一个单独的编译器? 如果是后者,他们为什么要重新发明轮子?