草庐IT

conditional-compilation

全部标签

java - 在 Maven 构建中使用 Eclipse Java Compiler (ecj)

Eclipse使用它自己的编译器(ECJ)来编译Java代码。调试使用Eclipse编译的程序更容易,因为可以立即应用简单的代码更改(通过热代码替换)。另一方面,Maven使用(默认情况下)oracleJDK,它生成不同的字节码,防止在Eclipse调试session中进行热代码替换。所以如果我打算调试程序,我想在我的Maven构建中使用EclipseECJ编译器。对我来说一种方便的方法是“ecj”配置文件:编译发布$mvnpackage使用启用的热代码替换编译快照$mvn-Pecjpackage还可以在settings.xml中指定配置文件激活甚至Eclipse项目属性。我的问题是:

Java/Wicket 口 : Compile Basic Hello World with Resources

我正在关注这个HelloWorldWicket应用程序示例https://www.ibm.com/developerworks/web/library/wa-aj-wicket/特别是我将HelloWorld.html放在我的源目录中HelloWorld.java旁边。我的文件结构是这样的:$tree.├──pom.xml├──src│  ├──main│  │  ├──java│  │  │  └──com│  │  │  └──example│  │  │  └──wicket│  │  │  ├──HelloWorld.html│  │  │  ├──HelloWorld.jav

java - 如何为不同的 Java 版本(6、7、8)支持不同版本的主要(和测试)源代码集

我有一个Java库项目。我想实现、测试并可能发布该项目的多个版本,旨在用于不同的Java版本:6、7、8。最简单的方法就是复制粘贴项目并支持多个源代码树,但我想避免这种情况,因为它既乏味又容易出错。另一种可能的方法是考虑“基础”项目,以及几个Java版本特定的项目。版本差异很小,但我不知道在类层次结构中反射(reflect)这个技术开发问题。所以我在找一种预编译器和/或标准M​​aven选项和/或Maven插件这有助于从单个源代码树支持库的多个Java版本特定版本,并且对lib用户透明。 最佳答案 您可以从单个pom.xml文件为每

java - Spring Condition 无法从属性文件中读取值

我正在尝试实现SpringConditionorg.springframework.context.annotation.Condition,如下所示:publicclassAPIScanningDecisionMakerimplementsCondition{@Overridepublicbooleanmatches(ConditionContextcontext,AnnotatedTypeMetadatametadata){//Notabletoreadtheproperty"swagger.scanner.can.run".ItisalwaysNULL.StringcanRunF

导致虚拟机故障的 Java 映射/nio/NFS 问题 : "a fault occurred in a recent unsafe memory access operation in compiled Java code"

我已经为特定的二进制格式(nfdump如果有人感兴趣)编写了一个解析器类,它使用了java.nio的MappedByteBuffer。读取每个几GB的文件。二进制格式只是一系列header和大部分固定大小的二进制记录,通过调用nextRecord()将其馈送到被调用方,nextRecord()会推送状态机,完成后返回null。它表现良好。它在开发机器上运行。在我的生产主机上,它可以运行几分钟或几小时,但似乎总是抛出“java.lang.InternalError:afaultoccurredinarecentunsafememoryaccessoperationincompiledJa

java - 进程间文件交换 : efficiency and race conditions

故事:前几天在想基于文件交换的进程间通信。假设进程A在其工作期间创建了多个文件,然后进程B读取这些文件。为了确保所有文件都被正确写入,创建一个特殊文件会很方便,该文件的存在将表示所有操作已完成。简单的工作流程:进程A创建文件"file1.txt"进程A创建文件"file2.txt"进程A创建文件“processA.ready”进程B正在等待文件“processA.ready”出现,然后读取文件1和文件2。疑惑:文件操作由操作系统执行,特别是文件子系统。由于在Unix、Windows或MacOS中的实现可能不同,我不确定文件交换进程间通信的可靠性。即使OS会保证这种一致性,也有像Java

java - Json.obj Scala,字符串连接 : Compilation error

我正尝试在Scala中做下一步,我正在使用play2:valstr="another"valr=Json.obj("error_type"->"invalid_request_error","validation_errors"->(Json.obj("code"->"thismode"+str+"doesnotexist","param"->"mode")))但它给了我错误:Type mismatch, expected: (String, Json.JsValueWrapper), actual: String但如果我这样做:valr=Json.obj("error_type"->

java - @Nullable 和 SonarQube 'Conditionally executed blocks should be reachable' 警告

包有以下package-info.java:@ParametersAreNonnullByDefaultpackagefoo;importjavax.annotation.ParametersAreNonnullByDefault;类有以下方法:privatestaticStringtoIsoString(@NullableInstantdateTime){returndateTime==null?null:dateTime.toString();}SonarQube(版本6.2,SonarJava4.14.0.11784)发出以下警告(鱿鱼:S2583):我怎样才能让SonarQub

Java 泛型错误 : inconvertible types from command line compiler

我有一些使用泛型的Guice绑定(bind)代码,这些代码可以在Eclipse的编译器中正常编译和运行,但不能在Java(命令行)编译器中正常运行。我升级到最新的(1.7.0_01)JavaSDK,但仍然出现以下错误。[error]...\BindCategorySelectorActivity.java:42:error:inconvertibletypes[error](Class>>)CategoryDataProvider.class);[error]^[error]required:Class>>[error]found:Class[error]1error[error]{f

java - Eclipse 无法编译通用代码,但 mvn compile 有效

在带有jdk1.7的EclipseKepler4.2中,我在Eclipse中遇到以下错误:Themethodor(capture#2-of?)inthetypeOptionalisnotapplicableforthearguments(Object)而它在运行时编译成功mvncompile.类如下所示:packagetestit;importjava.util.Map;importjava.util.Map.Entry;importcom.google.common.base.Optional;publicclassTest{privatestaticfinalObjectNO_VA