Tag: javac

Java错误:期望的类,接口或枚举

我需要知道这段代码的输出。 但它不起作用。 也许代码错了。 我还在学习如何使用Java,我尝试了几个小时,但仍然没有运气。 这是代码: public class A { public A() { System.out.println (“A”); } } public class B extends A { public B() { System.out.println (“B”); } } public class C extends B { public C() { System.out.println (“C”); } } public static void main(String args[]) { A a = new A(); B b […]

Diamond操作符()在java 1.7中不起作用

编译jsp文件时出现以下错误: 源级别低于1.7的“”运算符不允许 我正在使用jdk 1.7.x和eclipse Kepler我还在Eclipse中的项目首选项中将1.7 as compliance level设置1.7 as compliance level ,但代码仍无法正常工作 我应该添加任何其他配置吗?

对于具有字段double d = 2.2250738585072012e-308的类,编译挂起

我遇到了一个有趣的情况。 同事提交了一些更改,这些更改无法在我的计算机上从IDE(Eclipse)或命令行(Maven)进行编译。 在编译过程中出现的问题表现在占用100%CPU并且只杀死进程将有助于阻止它。 经过一些分析后,找到并解决了问题的原因。 事实certificate,在其中一个接口中有一条“double d = 2.2250738585072012e-308”(最后没有分号)。 以下剪辑重复了它。 public class WeirdCompilationIssue { double d = 2.2250738585072012e-308 } 为什么编译器会挂起? 一个语言边缘案例?

定位不同版本的JRE

我正在Windows Surface Pro上测试Java。 Surface Pro具有Java 7 Update 55,但没有安装JDK。 我使用javac从命令行在MacBook上编译了一个程序。 MacBook有Java 8 Update 5,它包含JDK(显然是因为我在MBP上编译)。 当我将程序从MackBook移动到Surface Pro时,我收到以下错误。 这里,“移动程序”意味着将两个*.class文件复制到新机器并尝试执行字节代码。 java.lang.UnsupportedClassVersionError: HttpsTest : Unsupported major.minor version 52. 尝试使用目标信息进行编译会导致: $ javac -target 1.7 HttpsTest.java SSLSocketFactoryEx.java javac: target release 1.7 conflicts with default source release 1.8 javac -help没有列出任何控制已编译程序的版本信息的选项( target除外,它似乎不起作用)。 如何为JRE的低级版本编译源文件? 在这种情况下,我的目标是Java 8机器上的Java 7。

使用单个美元符号`$`作为java类名称的任何风险?

最初我使用下划线_作为类名。 新的Java8编译器抱怨它“ 在Java SE 8之后可能不受支持 ”。 我将其更改为$ ,并且不再有任何警告。 但是我记得Java用来表示字节代码中的内部/嵌入类。 我想知道是否有任何风险使用美元符号$作为类名 这个问题的一些背景。 我想要做的是克服Java不支持纯函数的事实,而_或$是将命名空间封装一些非常通用的概念(类/静态方法)。 我也没有一个好名字,也不希望lib用户输入太多东西来引用该命名空间。 以下代码显示了我正在做的事情: https : //github.com/greenlaw110/java-tool/blob/master/src/main/java/org/osgl/_.java

javac代码消除function

我很难找到有关javac代码消除function的信息: 我读过如果你有类似下面的内容, if -statement将被删除: static final boolean DEBUG = false; if (DEBUG) System.out.println(“Hello World!”); // will be removed 但是这个怎么样,例如: static final int VALUE = 3; if (VALUE > 9) System.out.println(“VALUE > 9 ???”); // will this be removed? 或这个: static final SomeEnum VALUE = SomeEnum.FOO; if (VALUE==SomeEnum.BAR) System.out.println(“Bar???”); // will this be removed? 由于很难/不可能分析一个程序来找到所有死代码(可能类似于停止问题),我想可能只有一些明确定义的结构(如上面的第一个例子), javac将识别和可靠地移除。 […]

Config Maven 2在编译阶段打印出javac命令

有没有办法强制Maven 2(> 2.0.10)打印它正在执行的实际javac命令。 即使我们使用MAVEN_OPTS提升了最大值,我们仍然会耗尽内存。 我希望能够看到正在执行内存不足的实际命令。 我已经尝试在pom文件的插件管理部分使用下面的详细设置,但似乎没有给我javac命令: org.apache.maven.plugins maven-compiler-plugin 1.5 1.5 1024m

我可以使用JAVAC编译包含多个文件和目录的项目吗?

我正在开发一个非常大的项目,它在多个目录中关联了类文件,所有这些都来自root目录\ src。 我正在尝试在src \ solution \(称为Console.java)中编译一个文件,该文件使用src中其他目录的导入,这些目录仍然是未编译的。 因此,如果我想在IDE之外编译Console.java,我该如何去做呢? 哦,是的,我还有一些外部JAR需要包含在构建中。 谢谢! 我很感激!

是否可以使用可在Java 6 JVM上运行的Java 7 SDK编译类文件?

由于公共Java 6 SE JRE越来越接近它的EOL(11月12日),我正在考虑将我的项目从Java 6移植到Java 7.如果Apple提供Java 7 JRE,这将不是什么大问题。对于Mac OS X.但由于Apple不愿意这样做,我仍然需要支持只拥有Java 6 JRE的用户。 有没有办法用Java 7 javac编译Java 6兼容的二进制文件(类文件)? 当然,我知道在这样做时我不能使用新的Java 7function。 谢谢你的期待!

Javac旗帜禁止原始类型?

有没有可以传递的Java编译器标志告诉编译器不允许使用原始类型? 也就是说,对于任何generics类,让编译器强制使用参数化版本,否则抛出编译错误?