Tag: java 9

抛出exception后,jshell继续执行我的脚本。 如何让它停止?

我尝试编写一些jshell脚本。 抛出exception时,jshell仍继续执行下一行。 如何让我的脚本更像普通的java程序? 编辑 :我只是像jshell SCR.jsh一样运行它。 使用throw new Exception()或1/0不会阻止执行下一行。 该脚本包括如下语句: System.out.println(1/0) System.out.println(“foo”) /exit 我以为第二行无法访问。 这就是我的预期。 但是在打印exception后,还会打印foo 。

在java 9中处理PrintGCApplicationStoppedTime标志

我的应用程序使用gc标志“PrintGCApplicationStoppedTime”,但是当我使用Java 9运行它时,它失败并出现以下错误: Unrecognized VM option ‘PrintGCApplicationStoppedTime’ Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 这篇文章表明该选项已被弃用,但是他的旗帜打印的信息是否有其他选择,或者此信息不再可用?

如何在JShell中提供javadoc文档?

我正在使用JShell来测试一个库,我通过类路径为它创建了类,源和javadoc,如下所示: jshell –class-path library-javadoc.jar:library-sources.jar:library-jar-with-dependencies.jar 仍然,当我收到一个记录的Java标识符之后的双选项卡时: JShell如何期待文档?

添加java 9系统模块在eclipse中编译

我有一些遗留的Java代码,即: package org.alo.test.j9; import javax.activation.DataHandler; // in java.activation module import javax.annotation.PostConstruct; // in java.xml.ws.annotation module public class OldClass { public static void main(String[] args) { DataHandler dh = new DataHandler(null, null); System.out.println(dh); } } 这尚未模块化,因此需要使用–add-modules来使用Java 9进行编译。 $ javac -version javac 9 $ javac org/alo/test/j9/OldClass.java src/org/alo/test/j9/OldClass.java:3: error: package javax.activation is not visible import javax.activation.DataHandler; // in […]

在Java 9中创建了多少个未命名的模块?

我试图了解JPMS的工作原理。 从这里开始 类路径还没有完全消失。 所有JAR(模块化或非模块化)和类路径上的类都将包含在未命名模块中。 与自动模块类似,它导出所有包并读取所有其他模块。 但显然它没有名字。 因此,命名的应用程序模块不能要求和读取它。 未命名的模块又可以访问所有其他模块。 请注意…on the classpath will be contained in the Unnamed Module 。 模块是单一的。 从这里开始 为了兼容性,类路径上的所有代码都打包为一个特殊的未命名模块,没有隐藏的包和对整个JDK的完全访问权限。 再次unnamed module 。 模块是单一的。 我是否理解JPMS中始终只有一个未命名的模块? 这是否意味着在Java9之前开发但未针对Java9更新的应用程序将作为一个未命名的模块加载?

如何在jdk9 / java-9中使用sun.reflect包?

我正在使用jdk-9,我想在我的代码中使用sun.reflect.*包但我得到以下exception Exception in thread ‘main’ java.lang.IllegalAccessError : class Test (in moudle: Unnamed Module) cannot access class sun.reflect.Reflaction (in module:java.base), sun.reflect is not exported to Unnamed module 当我使用JDK-9运行下面的示例代码时 public static void main(String args[]){ System.out.println(Reflection.getCallerClass(3)); }

RuntimeException:在模块jrt.fs和模块java.base中打包jdk.internal.jimage.decompressor

组件详细信息 – 使用IntelliJ IDEA 2017.1 CE和jdk-9-ea + 154 main() – Set set2 = Set.of(“a”, “b”, “c”); set2.forEach(System.out::println); module-info.java module collection { requires java.base; } 日志 – Error occurred during initialization of VM java.lang.RuntimeException: Package jdk.internal.jimage.decompressor in both module jrt.fs and module java.base at jdk.internal.module.ModuleBootstrap.fail(java.base@9-ea/ModuleBootstrap.java:699) at jdk.internal.module.ModuleBootstrap.boot(java.base@9-ea/ModuleBootstrap.java:329) at java.lang.System.initPhase2(java.base@9-ea/System.java:1928) 对VM的初始化实施感到怀疑,我的问题是我还没有包含模块jrt.fs – 图片来自哪里? 如何调试此类模块包含/排除? 如何进一步解决当前exception?

java.io.IOException:无效的常量类型:19 at 5

我有一个项目 。 它使用spring boot 2 , java 9和maven。 它可以使用mvn clean package成功构建。 要运行spring boot应用程序,我使用了该命令 java -jar java-cloud-rest-api/target/java-cloud-rest-api-0.0.1-SNAPSHOT.jar 但它失败了,错误 org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘entityManagerFactory’ defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; n ested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1716) ~[spring-beans-5.0.0.RC3.jar!/:5.0.0.RC3] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.0.0.RC3.jar!/:5.0.0.RC3] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:499) ~[spring-beans-5.0.0.RC3.jar!/:5.0.0.RC3] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312) ~[spring-beans-5.0.0.RC3.jar!/:5.0.0.RC3] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) […]

如何运行用jaotc编译的类?

我使用Java 9 Ahead-Of-Time Compiler jaotc使用以下命令编译了一个简单的类: javac Test.java jaotc Test.class 这会生成一个名为unnammed.so的文件。 如何运行已编译的程序? 我是否需要编写一个引导程序来链接.so文件?

在分离的Java平台模块中使用不同版本的依赖项

我预计可以在myModuleA中使用ie Guava-19,在myModuleB中使用guava-20, 因为jigsaw模块有自己的类路径。 假设myModuleA使用Iterators.emptyIterator(); – 在guava-20中删除,myModuleB使用新的静态方法FluentIterable.of(); – 番石榴-19没有。 不幸的是,我的测试是否定的。 在编译时,它看起来很好。 与运行时相反,结果是NoSuchMethodError。 意味着,类加载器中第一个类决定哪个类失败。 与底层耦合的封装? 我找到了自己的理由。 由于传递依赖性会产生与以前相同的问题,因此无法支持它。 如果在ModuleA和ModuleB中的签名中发生版本冲突的guava类依赖于它。 应该使用哪个类? 但为什么我们可以通过互联网阅读“拼图 – 模块系统停止类路径地狱”? 我们现在有多个较小的“类似路径”,但问题相同。 这不仅仅是一个问题,而是一个不确定性。