草庐IT

java - Ant 找不到 Javac。无论我做什么,它总是声称 JAVA_HOME 是 "C:\Program Files\Java\jre6"

...这是错误的。这是我得到的错误:构建失败C:_TraderPlatform\Clients\Open\Open\Java\Applets\PPDataTransporter\nbproject\build-impl.xml:338:执行此行时出现以下错误:C:_TraderPlatform\Clients\Open\Open\Java\Applets\PPDataTransporter\nbproject\build-impl.xml:158:无法找到javac编译器;com.sun.tools.javac.Main不在类路径中。也许JAVA_HOME没有指向JDK。目前设置为“C

java - 为什么 Eclipse 会编译它,而 javac 不会?

我们有一些单元测试可以在Eclipse3.4中正常编译和运行,但是当我们尝试使用javac编译它们时,它会失败。我已经设法将代码缩减为一些小而独立的代码,因此它没有外部依赖性。代码本身没有多大意义,因为它完全脱离了上下文,但这并不重要——我只需要找出为什么javac不喜欢这样:publicclassTest{publicvoidtest(){matchOn(someMatcher().with(anotherMatcher()));}voidmatchOn(SubMatchermatcher){}SubMatchersomeMatcher(){returnnewSubMatcher()

java - 如何配置 Eclipse 以使用 Oracle javac 1.7.0_09 进行编译?

我正在尝试编译以下代码:publicclassDuplicateMainExample{publicstaticvoidmain(String[]args){System.out.print("A1");}publicstaticvoidmain(String...args){System.out.print("A2");}}在Eclipse中,它工作正常,但对两种方法都有警告-“DuplicateMainExample类型中的Duplicatemethodmain(String[])”使用javac(javaversion"1.7.0_09")我有一个编译错误:>javacDupli

javac 找不到源文件

我在当前工作目录中有.java文件,但javac报告:javac:nosourcefilesUsage:javacuse-helpforalistofpossibleoptions我正在使用ubuntu。 最佳答案 从您上面的评论来看,您似乎尝试过:javac-cp.;lib.jara.java在您的Ubuntu系统上。CLASSPATH分隔符在Unix系统上是:,在Windows上是;。Ubuntu考虑了;之前的命令,java-cp.并因此给出了消息。javac-cp.:lib.jara.java应该可以正常编译。

javac中java自类型递归类型参数和继承错误

为什么这段代码不能编译?publicclassx{privatevoidtest(){handle(newThingA());handle(newModifiedThingA());}private,XextendsT>java.util.Listhandle(Xobject){returnobject.getList();}privatestaticclassBaseThing>{publicjava.util.ListgetList(){returnnull;}}privatestaticclassThingAextendsBaseThing{}privatestaticclass

java - 代码在 Eclipse 中编译但不是 javac : curried lambdas with functional subinterface. 哪个是正确的?

我在Eclipse中开发了一些代码,测试成功,将其推送到我们的JenkinsCI服务器,并收到一封电子邮件,说Maven因Java编译错误而窒息。我随后隔离了问题并创建了以下显示问题的最小示例:importjava.util.List;importjava.util.function.Function;classMinimalTypeFailureExample{publicstaticvoidmain(String[]args){ListoriginalList=null;//irrelevantListresultList=transform(originalList,outer-

java - Eclipse 和 javac 之间奇怪的编译器差异

以下代码片段(从实际代码中提取)在Eclipse中编译和运行。package1/Outer.java:packagepackage1;importpackage1.Outer.Mid.Inner;importpackage2.Bar;publicclassOuter{finalMidmid=newMid();publicOuter(){mid.setInner(newInner(){@Overridepublicvoidfoo(){System.out.println("InOuter.foo()");}});}publicstaticclassMidimplementsBar{pri

javac junit 给出 "error: package org.junit does not exist"

我正在尝试在makefile中使用JUnit,但我无法让它工作。我的文件夹结构如下(makefile在myProject中):myProject|--bin|--main|--org|--myPackage|--test|--org||--myPackage||--lib其中/main包含主要文件,/test包含测试文件,/lib包含hamcrest-core-1.3.jar和junit-4.12.jar我的makefile如下:JAVAC=javacJVM=javaJAVADOC=javadocMKBIN=mkdir-pbinJAVAC_FLAGS=-g-dbin/JAVAC_CP=

java - 泛型和 lambdas - javac 和 Eclipse 编译器中的不同行为

注意:我发现多个问题指出javac之间的差异和Eclipse编译器,但据我所知,他们都在讨论其他问题。假设我们有这个方法:publicstaticvoidfoo(Suppliera,Functionb,Consumerc){c.accept(b.apply(a.get()));}我发现javac之间有不同的行为和EclipseJava编译器在编译对此方法的调用时,我不确定两者中哪一个是正确的。此方法的一个简单用法是://variant1foo(()->Optional.of("foo"),value->value.get(),value->System.out.println(valu

java - 为什么 javac 不接受 `x = x+++++y` ?

从编译器理论的角度来看,为什么javac编译器不接受x=x+++++y形式的语句,而是接受x=x+++++y? 最佳答案 因为++是java词法分析器的有效标记,语句x+++++y将被解析为标记:(x)(++)(+)()(++)(y)而x+++++y将被标记为无效的:(x)(++)(++)(+)(y)以上是无效的java,因为++运算符只能应用于数字变量,而(x++)的结果不是。这种类型的标记化是称为maximalmunch的概念的一个很好的例子。.来自JLSsection3.2Thelongestpossibletranslati