草庐IT

java - 是否可以在 javac(JDK 9)中混合 --class-path 和 --module-path ?

当我编译一个依赖于我之前编译过的其他模块的模块时,我必须指定--module-path选项。这使得我依赖的模块可见。但同时我也想让一些非模块化的Jar文件可见。但是,如果不使它们成为自动模块,只需指定--class-pathsome.jar就在--module-path旁边,然后javac似乎忽略了claspath并抛出“未找到包yyy”和其他“未找到”错误。我可以理解使用--class-path和--module-path同时(编译)时间是非法的,但javac不会以任何方式警告我。 最佳答案 您可以并行使用类路径和模块路径,但有一

java - 通过 Ant 任务运行 javac 时如何查看编译器输出?

在通过Ant运行javac时,是否有任何清楚解释且简单的方法可以查看编译器输出?任务?这是我的javacAnt标签:这是我收到的唯一错误消息:/path/to/build.xml:42:Compilefailed;seethecompilererroroutputfordetails.问题是我不知道如何查看编译器错误输出了解详情...一些可能有帮助的配置元素:Ant1.6.5Windows7x64Java1.6.0_20x32通过Eclipse启动目标我知道关于SO有一些相关的已回答问题,但没有一个人真正回答了这个简单的问题:https://stackoverflow.com/a/12

java - javac调试信息选项-g :vars do?是什么意思

javac的-g:vars(局部变量调试信息)选项究竟提供了什么输出。做一些测试,没有附加信息(例如-g:source,lines和-g:source,lines,vars没有区别。有人有这些局部变量调试信息的例子吗? 最佳答案 -g:vars选项会将LocalVariableTable插入到您的类文件中。例如,使用这个测试类:publicclassTest{publicstaticvoidmain(String[]args){intmylocal=1;System.out.println(""+mylocal);}}可以通过jav

javac错误: inconvertible types with generics?

还有其他几个SO问题谈论泛型编译OKw/Eclipse的编译器而不是javac(即Java:GenericshandleddifferenltyinEclipseandjavac和GenericscompilesandrunsinEclipse,butdoesn'tcompileinjavac)——但这看起来有点不同。我有一个enum类:publicclassLogEvent{publicenumType{//...valueshere...}...}我有另一个类,它的方法接收从Enum继承的任意类型的对象:@Overridepublic>voidpostEvent(Contextco

java - 泛型在 Eclipse 中编译和运行,但在 javac 中不编译

Note:Thisisaspin-offfromComparableandComparatorcontractwithregardstonull这段代码在Eclipse中编译运行良好(20090920-1017)importjava.util.*;publicclassSortNull{static>ComparatornullComparableComparator(){returnnewComparator(){@Overridepublicintcompare(Tel1,Tel2){returnel1==null?-1:el2==null?+1:el1.compareTo(el2

javac 源和目标选项

我已经看到了WhichJDK'sdistributionscanrun`javac-source1.6-target1.5`?中讨论的编译选项。.我了解源和目标的各个选项。我不明白为什么源版本高于目标版本。为旧目标编译代码是有意义的。但是在那种情况下,我们为什么不直接使用-source我们希望能够在其上运行的最旧目标 最佳答案 source:您的源代码编译所需的版本。目标:您想要支持的最旧的JRE版本。确保还设置bootclasspath以确保您的程序可以在较旧的VM上运行。来自javacdocumentation:Cross-Co

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

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

java - Android:javac 与 Dalvik

我的理解是,Google不喜欢Oracle在JavaME中使用JRE的许可政策,所以它只是重写了它使用自己的JVM规范模仿JRE,但行为有点不同,尤其是当它出现时让事情变得更高效、更安全。所以,如果我的理解是正确的,那就意味着当javac在一些Java源代码上运行并编译成“二进制”字节码,兼容的JVM会解释不同于Dalvik的字节码(在某些情况下)。这是与生俱来的Dalvik和其他(兼容的)JVM之间的区别。如果我到目前为止所说的任何内容不正确,请先纠正我!现在,如果Android带有自己的编译器(它可能),并以不同的方式编译Java源代码(Dalvik兼容)方式比javac,然后我可

java - Ant :找不到类:javac1.8

我正在尝试在Eclipse中使用Ant构建一个项目。我右键单击build.xml>RunAs>AntBuild。但是,我收到以下错误:BUILDFAILEDC:\Users\David\eclipse\test-project\build.xml:26:Classnotfound:javac1.8还有一个警告:compile:[javac]C:\Users\David\eclipse\test-project\build.xml:26:warning:'includeantruntime'wasnotset,defaultingtobuild.sysclasspath=last;set

java - 使用javac在一个包内编译四个java文件

我的文件夹中有四个java文件。它们都在同一个包中。这是包声明包com.osama.GHide所有这些类都在同一个包中。我想知道如何使用javac编译它们(我的意思是我不知道如何编译多个相互使用的文件)。一旦完成,我如何启动然后在CLI中使用java命令?这是文件名。EnteringPoint.javaHidingProcess.javaListFiles.java 最佳答案 从项目的根目录:javacsrc/com/osama/GHide/*.java运行,假设没有其他依赖项:java-cp./srccom.osama.GHide