问题标签 [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.
java - 将预编译指令传递给 javac?
我正在编写一个桌面和 j2me 应用程序。我在程序中有调试语句。目前为了避免那些被编译我使用如下。我们这样做是为了减小 jar 的大小。(专门针对手机)
但这是一种硬编码。有没有像 C 一样的替代方法,我们有预编译的指令。注释可以在这里帮助吗?还是我应该寻找的其他东西?
jvm - 为什么 javac checkcast 数组两次?
检查字节码,我注意到 javaccheckcast
在转换为数组类型时似乎重复了指令。
javap反汇编的javac编译版本
测试jikes显示了预期的单一演员表
checkcast
如果对象不能被视为请求的类型并且不执行任何操作,则应该引发异常,所以我不明白为什么它可能有助于加倍演员表。我还没有查看 JDK 源代码来了解它是如何产生的,如果这有助于解释原因(也许它是一个提示)。
java - javac的classpath和sourcepath选项的区别
我阅读了 Sun 文档和很多关于 Stack Overflow 的帖子,但我仍然对 Java 编译器选项-cp
和-sourcepath
.
假设我有这个目录结构:
假设我MainClass.java
在 package 中有一个源文件com.mypackage
,并且源文件夹中的目录结构正常。
我在project1目录中并运行:
或者
我得到了同样的结果。在详细模式下,源文件的搜索路径src
在这两种情况下都是。
如果有人能帮我弄清楚这些选项的细节,那就太好了。
java - OS X: Terminal output of javac is garbled
I've got my computer set up in Japanese (hey, it's good language practice), and everything is all fine and dandy... except javac
. It displays localized error messages out to the console, but they're in Shift-JIS, not UTF8:
If I pipe the output through nkf -w
, it's readable, but that's not really much of a solution:
Everything else works fine (with UTF8) from the command-line; I can type filenames in Japanese, tab-completion works fine, vi can edit UTF-8 files, etc. Although java
itself spits out all its messages in English (which is fine).
Here's the relevant bits of my environment:
From what it looks like, javac
isn't picking up the encoding properly, and java
isn't picking up the language at all. I've tried -Dfile.encoding=utf8
as well, but that does nada, and documentation on the localization of the JVM toolchain is pretty nonexistent, at least from Google.
Addendum:
Macports OpenJDK6 has better behavior:
java - 包含来自同一包的接口 (Java)
我是 Java 新手(我自己是 C++ 人),我正在尝试用 Java 编译一个简单的程序(测试不同的随机数算法)。我有一个接口,我想用它来实现另一个类,这两个项目都在同一个包中。
所以我现在在我的“Random”包目录中有两个文件——“RandomInterface.java”和“RandomTest1.java”(它实现了 RandomInterface)。我可以使用 javac 编译 RandomInterface.java 就好了,但是当我尝试编译 RandomTest1 时出现以下错误:
我将这两个文件声明为与每个文件的第一行相同的包(随机)的一部分。我需要做什么才能将 RandomInterface 类包含到 RandomTest1 的编译命令中?
谢谢!
java - 包不存在
当我尝试在 Eclipse 中构建项目时,出现“构建失败”错误并输出错误:
[javac] ......\src\example\servlet\ScrapingServlet.java:10: 包 org.apache.http.client 不存在 [javac] 导入 org.apache.http.client.HttpClient;
但是 Eclipse 编辑器没有给出任何错误。我使用 Project > properties > add external JARS...将 jar 添加到项目中,并且所有 JARS 都显示在项目资源管理器中。我究竟做错了什么?
java - 如何为 javac 指示编译的类应该去哪里?
我正在编译我的源文件,如下所示:
如何更改此命令行以生成类文件/home/bob/class
?
此外,应该如何设置环境变量(如 JAVA_HOME、CLASSPATH、JAVAPATH)才能使其正常工作?
java - 棘手的编译器行为
简单的java代码片段。它有三个班级。编译代码后请删除A.class,然后执行代码。代码还在运行,为什么不检查A的字节码是否存在?
java - 强制进行未经检查的呼叫
有时,当对 Object 使用 Java 反射或一些特殊的存储操作时,最终会出现未经检查的警告。我已经习惯了,当我对此无能为力时,我会记录为什么一个呼叫未被检查以及为什么它应该被认为是安全的。
但是,我第一次收到有关未检查呼叫的错误。这个功能:
我以为这样称呼它:
会给我一个未经检查的呼叫警告。Jikes 发出警告,但 javac 给了我一个错误:
有什么方法可以强制它编译并发出警告?
谢谢。
ant - 在 IBM JDK 中使用 javac fork 属性
我正在处理一个大型 ant 构建,目前内存不足。我读过的一种有助于缓解此问题的方法是使用 javac fork="true" 在单独的 jvm 中运行 javac。
我的问题是我需要使用 IBM JDK 编译项目(这不是 JAVA_HOME 引用的 JDK,我不希望它是)。我尝试将 Ant 的 javac 的可执行属性设置为 IBM 的 javac 的路径,但没有任何乐趣(项目仍然无法编译)。Ant 的可执行属性状态文档:
在 fork="yes" 的情况下使用的 javac 可执行文件的完整路径。默认为当前运行 Ant 的 Java 版本的编译器。如果 fork="no" 则忽略。从 Ant 1.6 开始,此属性也可用于在使用 jikes、jvc、gcj 或 sj 时指定可执行文件的路径。
有没有人有任何想法?
谢谢 -