如何使用带有冒号的Windows文件名与Java 9的统一日志?
% java11 -Xlog:gc*:file=c:\max.txt -version [0.002s][error][logging] Invalid decorator '\max.txt'. Invalid -Xlog option '-Xlog:gc*:file=c:\max.txt', see error log for details. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 显然,使用Java 9(及后)统一记录的结肠用作-Xlog参数中字段之间的分离器.那么,如何指定其中带有结肠的Windows路径名?有某种逃脱吗?如果我按原样指定文件名,我会收到上面包含的错误.谢谢. 解决方案 建议解决在邮件列表上正在使用诸如: 的外壳逃逸 java -Xlog:gc*:file=\"C:\ma
0 2023-12-05
编程技术问答社区
为什么它会锁定库/模块?
当我启动任何第三方应用程序时,例如记事本(但是您可以从Java 9应用程序中拿走任何其他内容),然后退出Java应用程序: import java.io.*; public class LaunchNotepad { public static void main(String[] args) throws IOException { Runtime.getRuntime().exec(new String[] {"C:\\Windows\\notepad.exe"}); } } 启动的第三方应用程序不断锁定Java 9的lib\modules文件.这使我们的Java应用程序很难使用私人JRE进行更新,因为原始目录(包含JRE)无法重命名.这是ProcessExplorer(sysinternals)的屏幕截图: 这闻起来像java 9虫(报道为),但是是否有工作可以在Windows上启动应用程序而不锁定lib\modules文件,例如.通过使用仅启动传
0 2023-12-05
编程技术问答社区
指示Wildfly将应用程序作为模块化应用程序运行(Java 9模块)。
我正在使用: Wildfly 21 Java 11 我刚刚经历了模块化(使用Java 9模块)的痛苦 war jar, ejb 罐子,实用程序罐(现在都有module-info.java现在)和其他第三方库.整个应用程序都很好地编译,没有错误. ,但我注意到,当我在野生蝇中运行它时,尽管它像没有模块化时一样,它没有问题,似乎应用程序服务器现在没有考虑它现在是模块化的应用程序,并且没有使用ModulePath运行该应用程序,但是类Path.因此,在运行时,应用程序的模块化性质被忽略. 使用 modulepath 而不是classpath? 可惜我们必须被诸如Wildfly之类的应用程序服务器锁定,以阻止我们在应用程序中运行时使用如此重要的Java功能(模块). 解决方案 虽然Wildfly不支持进行模块化战争,但您可以看一下Piranha Cloud. Piranha服务器本身可以在模块路径中运行,并且可以在新的JPMS层中部署战争,尊重提供的模块
0 2023-12-04
编程技术问答社区
用Java 9运行应用程序,模块java.base不能 "打开java.io"
我尝试运行我的应用程序(在Java Swing中开发的前端,使用EJB在Wildfly 8上部署的服务器使用Java 9). 当客户试图建立EJB连接时,有以下例外: 09:53:42,358 INFO [xnio] XNIO version 3.2.0.Final 09:53:42,465 INFO [nio] XNIO NIO Implementation Version 3.2.0.Final 09:53:42,507 DEBUG [nio] Started channel thread 'Remoting "config-based-naming-client-endpoint" I/O-1', selector sun.nio.ch.WindowsSelectorImpl@4b4a5caf RmiServiceFactpry ExceptionInInitializerError java.lang.ExceptionInInitializerError
0 2023-12-04
编程技术问答社区
Mockito、Java 9和Java。lang.ClassNotFoundException:孙。反映反射工厂
我的项目是使用Mockito Testing库的Wildfly 13应用程序.该应用不使用Java 9模块结构.只要服务器在Java 8上运行,测试效果很好,但是一旦我们升级到Java 9,它们就会失败,但以下例外: org.objenesis.ObjenesisException: java.lang.ClassNotFoundException: sun.reflect.ReflectionFactory from [Module "test.war" from Service Module Loader] at test.war//org.objenesis.instantiator.sun.SunReflectionFactoryHelper.getReflectionFactoryClass(SunReflectionFactoryHelper.java:63) at test.war//org.objenesis.instantiator.sun.SunReflecti
0 2023-12-04
编程技术问答社区
Webpere Liberty对Java 9的支持
WebPshere Liberty对Java 9是否支持?截至最新的Beta,它与Java 8完全兼容,但没有提及升级. WebSphere Liberty是否可以支持Java 9模块路径? 解决方案 WebSphere Liberty主要在"耐受模式"中与Java 9一起使用,这意味着Liberty和Apps可以在Java 9上运行,但是您无法利用Java 9 Modularity. 您可以找到对Java 9的OpenLiberty(WebSphere Liberty的开源子集)的更多详细进度:此处: https://github.com/pithub.com/openliberty/open-liberty/open-liberty/open-liberty/issues/issues/540 从Java EE应用程序的角度来看,尚未定义Java EE应用如何与JPM一起使用.直到Java EE 9. ,这可能不会决定
0 2023-12-03
编程技术问答社区
java.lang.NoClassDefFoundError: javax/activation/DataSource on wsimport Intellij java 9
我正在尝试使用jdk-9 我正在得到这个例外,我想知道如何告诉Intellij通过 - add-modules java.activation"以完成操作. (我想我应该从命令行中运行WSIMPORT ... Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl.(RuntimeBuiltinLeafInfoImpl.java:461) at com.sun.xml.bind.v2.model.impl.RuntimeTypeInfoSetImpl.(RuntimeTypeInfoSetImpl.java:65) at com.sun.xml.bind.v2.model.impl.Ru
0 2023-12-02
编程技术问答社区
如何将自动更新的应用程序从 Java Web Start(JDK 8)升级到 jlink(JDK 9+)?
java 8和先前的版本具有 java web start - 更改应用程序时要使用该应用程序. Oracle建议用户迁移到 jlink ,因为那是新的Oracle技术.到目前为止,这听起来不错.这带来了许多好处: Windows,Mac和Linux上的本机代码 代码的模块化(尽管Proguard也这样做) 使用新的,支持的技术. 问题:我找不到使用Jlink自动更新的规范Java解决方案. 一个人会认为可以继续使用Java Web启动,尤其是当一个人随意阅读此文档.请注意,Java Web启动继续被突出列出的事实.但是有一个在Ointment :Oracle正在贬低Java Web的开始.是 出于这个问题的目的 每年向具有功能包装的企业解决方案的人支付大量资金.要分发的应用程序已经包装到小于50MB的单个JAR中. 强迫用户运行安装式风格的应用程序以重新安装新版本,然后每次按更新时手动卸载旧版本.那是1990年代. 将整个应用程序放置为WebApp,重写UI
2 2023-11-30
编程技术问答社区
在Java 9'的版本字符串方案中,第4个数字是什么意思?
根据此博客在Java 9的新版本字符串方案上,该版本应该像MAJOR.MINOR.SECURITY,即应该有3个数字和2个时期. 但是,使用Azul的Zulu 9,当我打印Java版本时,它有4个数字和3个时期: ./jdk/bin/java -version openjdk version "9.0.0.15" OpenJDK Runtime Environment (Zulu build 9.0.0.15+181) OpenJDK 64-Bit Server VM (Zulu build 9.0.0.15+181, mixed mode) 4个数字代表什么? 解决方案 该博客发布有点过时. Java 9中实际实施的方案记录在 JEP 223:新版本 - 弦乐方案 前三个数字的含义是标准化的.第四和(任何)随后的数字的含义留给供应商以指定. 还要注意第二个数字和第三个数字之间有趣的关系. 这是JEP的相关部分. "序列可能是任意长度的,但
0 2023-11-18
编程技术问答社区
Java 9中集合的重载便利工厂方法有什么意义?
Java 9带有便利厂方法用于创建不可分解的列表.最后,列表的创建很简单: List list = List.of("foo", "bar"); 但是,此方法有12个超载版本,11个具有0到10个元素,一个带有Var args的元素. . static List of(E... elements) Set和Map. 也是如此 由于有一个var args方法,还有额外的11方法的意义是什么? 我认为var -args创建了一个数组,因此其他11种方法可以跳过额外的对象,在大多数情况下,0-10个元素将做到.还有其他原因吗? 解决方案 来自 jep docs 本身 - 描述 - 这些将包括varargs的过载,因此没有固定限制 关于收集尺寸.但是,收集实例如此创建 可能会调整尺寸较小的尺寸.特种案例API(固定问题 超载)最多将提供十个元素. 在API中引入一些混乱,它避免了数组分配, 初始化和垃圾收集开销 va
0 2023-11-13
编程技术问答社区
Unity无法建立apk Android
我遵循团结"坦克!"教程,现在我正在尝试将游戏移植到Android上,这是我第一次进行Unity,现在它要建立APK Unity告诉我"无法构建APK",然后我遇到了一些错误,我正在附上您我认为这是致命的错误,请告诉我有什么问题. CommandInvokationFailure: Failed to build apk. C:/Program Files/Java/jdk-9.0.1\bin\java.exe -Xmx2048M -D com.android.sdkmanager.toolsdir="C:/Android_SDK\tools" -D file.encoding=UTF8 -jar "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar"- stderr[ Exception in thread "main" java.lang.reflect
2 2023-11-08
编程技术问答社区
将Java 8项目迁移到Jigsaw时,单元测试应该放在哪里?
我目前正在使用JDK-9+149. 该项目已在标准的Maven目录布局中布置,即具有src/main/java,src/test/java,等等. 一旦我将module-info.java添加到src/main/java>,Maven-Compiler-Plugin就会失败扔NullPoInterException.这是因为它希望也为test目录找到一个模块INFO.因此,据我所知,选项是: 将测试类保存在单独的模块中,这意味着他们只能访问主模块的导出软件包. 将测试类移动到主要模块,以及来源,这意味着主模块需要测试依赖项. 显然,这些选项似乎都不是可取的,因此我认为有推荐的方法可以在Maven项目中测试拼图模块.我既不能找到建议也没有例子. 编辑:添加一些我在发布问题时我不认为相关的信息(对不起) nullpointerexception我陷入 Maven 3.3.9 Maven-Compiler-Plugin 3.6.0 来源和目标配置:9
4 2023-11-07
编程技术问答社区
为什么\\R在Java 8和Java 9之间的正则表达式中表现不同?
Java 8和9中的以下代码编译,但行为不同. class Simple { static String sample = "\nEn un lugar\r\nde la Mancha\nde cuyo nombre\r\nno quiero acordarme"; public static void main(String args[]){ String[] chunks = sample.split("\\R\\R"); for (String chunk: chunks) { System.out.println("Chunk : "+chunk); } } } 当我使用Java 8运行时,它会返回: Chunk : En un lugar de la Mancha de cuyo nombre no quiero acordarme 但是当我使用Java 9运
4 2023-11-06
编程技术问答社区
Java 9 Zip End Header Not Found 异常
为Googles编辑:事实证明这是由于使用Java 9的过时Beta版本引起的. 我正在尝试使用Java从此URL下载ZIP文件 - srtm文件,它需要一个用户名/密码才能下载,我正在使用以下Java代码,它给了我以下异常 java.util.zip.ZipException: zip END header not found at java.util.zip.ZipFile$Source.zerror(java.base@9-internal/ZipFile.java:1210) at java.util.zip.ZipFile$Source.findEND(java.base@9-internal/ZipFile.java:1119) at java.util.zip.ZipFile$Source.initCEN(java.base@9-internal/ZipFile.java:1126) at java.util.zip.ZipFile$Source.(
4 2023-11-02
编程技术问答社区
运行Zeppelin时,无法识别虚拟机选项'MaxPermSize=512m'。
当我尝试通过 运行齐柏林飞艇时 bin/zeppelin.sh 或 bin/zeppelin-deamon.sh start 我收到以下错误消息. Unrecognized VM option 'MaxPermSize=512m' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. Java 9安装在我的系统上(Ubuntu 16.04). $ java -version openjdk version "9-internal" OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src) OpenJDK 64-Bit Server VM (build
6 2023-11-01
编程技术问答社区
无法处理Java9项目中的module-info.class文件,导致ClassFormatException。
尝试在Intellij 2017.2017.2.2 下运行vaadin 8.1应用程序,我能够使用 Fresh Project 并使用Jetty Server托管相同的项目. 我最终试图将生成的战争部署到Tomcat服务器.但是,在Tomcat服务器的启动期间,我得到以下例外: 21-Aug-2017 22:53:38.830 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.processAnnotationsFile Unable to process file [/Library/Tomcat/apache-tomcat-8.0.22/webapps/vaadinjavanine/WEB-INF/classes/module-info.class] for annotations org.apache.tomcat.util.bcel.classfile.ClassForm
12 2023-10-24
编程技术问答社区
在IntelliJ 2017.2.2中的Java 9预发布版下运行Vaadin 8.1应用程序
在Intellij 2017.2.2中,我能够使用tomcat 8.5.20在Java 9+181下运行vaadin 8.1.2应用Java 1.8. 如果Project Structure>> Project SDK设置为Java 9,我会在FillIn周围遇到此编译器错误,并且关于filling与vaadin Mouseeevents有关的断言错误.我尝试过谷歌搜索,但没有找到线索. Information:java: An exception has occurred in the compiler (9). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include
6 2023-10-24
编程技术问答社区
Tomcat 7.0.73没有#39;t使用java 9
由于默认的" java.endorsed.dirs"选项,无法使用Java 9启动基于tomcat的应用. -Djava.endorsed.dirs=/usr/local/share/tomcat/endorsed is not supported. Endorsed standards and standalone APIs in modular form will be supported via the concept of upgradeable modules. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 是否有工作? 解决方案 您必须入侵脚本bin/catalina.sh才能使其工作. bin/catalina.sh中有一堆这样的行: exec "$_RUNJDB" "$L
4 2023-10-24
编程技术问答社区
在Eclipse上用Java 9和Java 10从Tomcat上删除java. endorsed.dirs
我在IDE中使用tomcat 9.0.4使用Eclipse 4.7.3a.我从Java 8升级到Java10.我更改了JAVA_HOME指向JDK 10安装.我进入Eclipse,创建了一个新的JDK,该JRE指向Java 10 JDK,然后选择了它.我重建了我的项目,并试图启动我拥有的Tomcat服务器.它说: -Djava.endorsed.dirs=C:\bin\tomcat\endorsed is not supported. Endorsed standards and standalone APIs in modular form will be supported via the concept of upgradeable modules. 我四处张望,发现在eclipse的tomcat启动配置中,在"参数"选项卡下,有以下VM参数: -Dcatalina.base="I:\work\.metadata\.plugins\org.eclipse.wst.s
2 2023-10-24
编程技术问答社区