草庐IT

guava-jdk

全部标签

java - Jdk9/java-9中module-info.java编译错误如何解决

我正在尝试使用jdk-9在代码下方运行,但在使用命令编译时遇到问题命令javac-dmods.\module-info.javacom\nirav\modi\Test.java错误.\module-info.java:1:error:class,interface,orenumexpectedmodulemodule1{}^1errormodule-info.javamodulemodule1{}测试.javapackagecom.nirav.modi;classTest{publicstaticvoidmain(Stringargs[]){System.out.println("He

java - JDK 类中 java.lang.ref.WeakReference 对象的内存泄漏

下面的简单代码再现了java.lang.ref.WeakReference对象在堆中的增长:publicstaticvoidmain(String[]args)throwsException{while(true){java.util.logging.Logger.getAnonymousLogger();Thread.sleep(1);}}这是jmap命令在几秒内的输出:user@t1007:~>jmap-d64-histo:live29201|grepWeakReference8:224931079664java.lang.ref.WeakReference31:132144[Lj

java - 子类化 Guava 的 ImmutableSet 的适当方法

我有一个类classReceipt{privateSetorders;publicReceipt(Setorders){this.orders=ImmutableSet.copyOf(orders)}}这对我很有帮助。但是,由于我面临一些类型删除和持久性问题,我现在想介绍一种形式classOrderSetextendsSet{}显然我不能扩展Set,因为它是一个接口(interface)。我想让我的实现保持不变。但是,我无法扩展ImmutableSet,正如文档所述:Note:Althoughthisclassisnotfinal,itcannotbesubclassedoutside

java - Glassfish 服务器不适用于 JDK 8

我在一个带有NetBeans的Web项目中使用jdk8和lambda,但是当我将它部署到glassfish时,它显示了这个错误:java.lang.RuntimeException:Uncompilablesourcecode-Erroneoustreetype:这是由包含lambda表达式的代码行引起的。我尝试更改glassfish设置以使用jdk8,但我没有让它工作。有什么办法可以让它发挥作用吗? 最佳答案 我在使用GlassFish4和JDK8时观察到各种奇怪的行为。似乎是在使用Java1.8中引入的新语法时,使用新功能的类将

java - 为什么我需要添加 Artifact JSR305 才能使用 Guava 14+?

在查找有关stackoverflow的信息时,我看到了一个与我类似的问题,但没有真正的答案here.我需要将我的Maven项目从guava11.0.2迁移到guava14或更高版本(我需要RangeSet)。我用依赖项更新了我的mavenpom:com.google.guavaguava14.0然后我运行maven构建,并得到这个错误:[ERROR]xxx.java:cannotfindsymbol[ERROR]symbol:classNonnull[ERROR]location:packagejavax.annotation仔细一看,这个注解是JSR305自带的,依赖guava11.

java - 如何强制 Eclipse m2e 插件为项目使用 jdk

我将Maven与“EclipseKeplerJavaEE”结合使用。我在“maven-compiler-plugin”中有这样的东西:1.71.7每次我在“pom.xml”中更改某些内容时,eclipse都会强制我执行“Maven->更新项目”,然后项目设置更改为使用JRE而不是JDK,并且一些Maven构建停止工作。我发现解决它的唯一解决方案是设置我如何设置eclipse/m2e以使用JDK是在maven-compiler-plugin中定义一个路径。这不是好的解决方案,因为它仅适用于我的计算机,对其他计算机将失败。我认为有一些maven或m2e定义说“使用jdk而不是jre”。

java - String.hashCode() 是否可以跨 VM、JDK 和操作系统移植?

最近出现了一个有趣的问题。我们遇到了一些使用hashCode()作为MD5加密盐源的代码,但这引发了一个问题:hashCode()是否会为同一对象返回相同的值在不同的虚拟机、不同的JDK版本和操作系统上?即使不能保证,到目前为止它是否有任何变化?编辑:我的意思是String.hashCode()而不是更通用的Object.hashCode(),后者当然可以被覆盖。 最佳答案 没有。来自http://tecfa.unige.ch/guides/java/langspec-1.0/javalang.doc1.html:Thegenera

compatibility - JDK 1.6 与 JDK 1.5 兼容吗?

我有一个兼容问题,我的项目是在JDK1.6中开发的,但是当我需要将它发布到主机域时,主机域使用JDK1.5时出现问题,我如何使我的项目与JDK兼容1.5?提前致谢 最佳答案 您基本上需要设置-target属性。另见javac/?。javac-target1.5[...]另见thisexample在javac的文档中。更新:根据您使用Eclipse的评论,您只需更改每个项目的编译器合规性级别。右键单击项目>属性>Java编译器>编译器合规级别>1.5。Seescreenshot.您可以从SunArchive下载JDK1.5.

java - 在 Windows 10 : Java SE Development Kit (JDK) was not found on this computer 中安装 Netbeans 时出现问题

这个问题在这里已经有了答案:HowcanIinstallNetbeanswithJDK10(3个答案)关闭3年前。我正在尝试在Windows10上安装TMCNetbeans版本。我收到此错误:在此计算机上未找到JavaSE开发工具包(JDK)安装带有TMC1.1.8的Netbeans需要JDK7。确保JDK已正确安装并再次运行安装程序。您可以使用--javahome安装程序参数指定有效的JDK位置。我在使用常规版本的Netbeans时遇到了同样的错误。我知道它安装正确,因为我让IntelliJ工作得很好。我该如何解决这个问题?我一直在寻找答案,但没有找到适用于Windows10的答案?

java - Sun JDK 能否在 JVM 崩溃时生成核心/堆转储文件?

当JVM崩溃时,是否有生成核心/堆转储文件的方法?由于这些文件通常非常有助于找出代码中的错误。 最佳答案 使用以下JVM选项:-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath="/tmp"JVM会将堆中的内容转储到指定目录中的文件中。请注意,这仅在抛出OutOfMemoryError时发生,因为如果JVM由于其他原因而崩溃,则实际上不需要转储。编辑:“boolean选项用-XX:+打开,用-XX:-关闭。”docs 关于java-SunJDK