问题标签 [adoptopenjdk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jvm - 如何在docker容器中使用adoptopenjdk调整应用程序的堆大小
我正在使用 Dockerfile 在 docker 容器中运行 hypergraphql:
我认为我应该调整容器内的 JVM 大小,以防止 JVM 占用所有可用内存https://developers.redhat.com/blog/2017/03/14/java-inside-docker/。
但我对默认的 JVM 堆大小一无所知。我怎样才能找到它,它的最佳价值是多少?
java - 无法在“/Library/Java/JavaVirtualMachines/adoptopenjdk-15.jdk/Contents/Home/bin/policytool”中找到可执行文件 (-1)
如何解决以下问题?
操作系统: Mac
更新:
它适用于 JDK1.8.0_181 但不适用于 JDK15
java - SecureRandom 在 docker 采用openjdk-tomcat 映像中未按预期工作
我正在使用 tomcat 的 docker 映像来运行应用程序。图像详细信息为: tomcat:9.0.45-jdk11-adoptopenjdk-hotspot。
当我在安装了jdk11-adoptopenjdk的本地机器上运行应用程序时,应用程序工作正常,但我部署到容器中时它开始失败。
我在使用 SecureRandom 类创建整数列表的代码中发现了问题。这是代码:
SecureRandom.getInstanceStrong().ints(容量, minNumber, maxNumber).boxed().collect(Collectors.toList());
当代码执行这一行时,它只停留在那里。
只是想知道,将 SecureRandom 与 docker 等一起使用时是否有任何问题,因为我浏览了以下几个链接,并且我理解它指的是操作系统级别的机制。关联
java - 如何使用 Mac 的 java_home 在同一版本的 AdoptOpenJDK 和 AzulOpenJDK 之间进行选择?
我.zshrc
在以下行中选择了它是哪个 JAVA_HOME
我以前只有 AdoptOpenJdk,因此这样做可以让我轻松选择 AdoptOpenJdk 1.8 版
但是,安装 Zulu 后,当我运行时java_home -V
,我有以下内容
之后,现在我正在运行/usr/libexec/java_home -v '1.8*'
的 JAVA_HOME 指向Zulu open jdk
.
如何仅使用java_home
命令将其返回 AdoptJDK?
java - AdoptOpenJDK 和 AzulOpenJDK 处理新文件(“版本”)的方式有什么不同吗?
我的 build.gradle 文件中有以下内容
当我使用 AdoptOpenJDK 时,它编译得很好。但是,当我使用 AzulOpenJDK 时,它会抱怨:
AdoptOpenJDK 和 AzulOpenJDK 处理上述命令的方式有什么不同吗?
docker - 如何解决 Raspberry Pi 上的 Gradle docker 图像冻结并警告单调时钟?
我正在尝试设置一个 Docker 容器来构建和运行一个小型应用程序。这是我的 Dockerfile:
docker build -t myimage .
在我的个人机器(Macbook Pro)上工作没有问题。如果我尝试在 Raspberry Pi 4B 上构建映像(这是最终目标),它会挂在RUN gradle build
步骤上并且永远不会完成。
这是我的终端输出:
就是这样。没有进一步的事情发生。
起初,我忽略了 OpenJDK 警告,因为我在其他图像中看到它并且运行它们没有问题。在所有其他选项都失败后,我开始怀疑它可能是罪魁祸首。如何解决?
java - 在带有 AdoptOpenJDK 11 的 MacOS 上使用 Gradle 时不支持发布版本 11
运行 gradle build (适用于我团队中的其他开发人员)时,我得到:
这是在 MacOS 上安装 AdoptOpenJDK11。
相关部分build.grade
似乎 gradle 的 java 工具链功能引起了问题。
- 如果完全删除了 java toolchains 块,则项目使用当前 JVM 构建良好。
- 如果 java 工具链设置为使用 java 12,gradle 将下载 jdk12 并再次构建良好。
- 通过命令行从现有的 JDK11 运行 javac 来编译一个虚拟的 hello world 文件也可以正常工作(例如
/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin/javac --release 11 HelloWorld.java
)
我怀疑重新安装 JDK 会解决这个问题,但我真的很感激任何关于如何进一步调试并理解它为什么会发生的线索。
更新
在尝试了几个调试步骤后,构建现在可以工作了,原因我不知道。不幸的是,我不知道为什么它最初不起作用并且无法再次重现问题以进一步调试。供以后可能遇到这个问题的人参考,下面是我在调试过程中做的一些步骤。其中之一显然解决了这个问题,但我不知道如何:
- 删除了 java 工具链部分并尝试以这种方式构建,然后添加回 java 工具链部分
- 尝试构建设置 java 工具链以使用 java 12(这导致 gradle 自动配置 jdk12)
- 跑步
gradle -q javaToolchains
- 从中删除 jdk12(由 gradle 自动配置)
~/.gradle/jdks
java - 由于 ssl 证书,Jenkins 没有使用由 Oracle 构建的 openjdk 安装插件
我正在尝试在我的本地机器上启动 jenkins。操作系统是 Ubuntu 20.04
在 Web 界面中单击安装插件后,我收到有关证书的错误
那就是如果我使用由 Oracle 构建的 openjdk(不管版本)。有趣的是,有时詹金斯设法安装一个插件,然后出现错误,有时詹金斯甚至可以安装 4 个插件。肯定是证书有问题,但如果是这样,为什么不是每次都准确再现呢?
如果我使用 oracle jdk(尝试 8 和 11),一切都很好。我已经尝试了大约 10 次。它也适用于Liberica jdk,并适用于Adopt Open Jdk(openjdk,由 RedHat 构建),因此问题出在 Oracle openjdk 上。
我还尝试将 cacerts 从 oracle jdk 复制到 oracle openjdk,但没有帮助。我想也许我应该复制 jdk/lib/security 目录的所有内容,但它也没有帮助。
所以我现在有两个问题
如果这是证书的问题,为什么每次都以不同的方式复制?有时会下载 2 个插件,有时没有,但不会超过 4 个。
为什么复制证书没有帮助?
java-8 - Anypoint Studio 6.4 在 OS X BigSur 11.3.1 上变得无响应
由于我已经更新到 BigSur 11.3.1 AnypointStudio 6.4 启动,但它变得对鼠标或键盘没有响应。我尝试了全新安装,将 jdk8 升级到最新版本,甚至安装了 Anypoint Studio 6.6
我在应用程序日志或系统日志中看不到任何内容。
我在 BigSur 11.3.0 上测试了完全相同的安装,一切正常。
任何想法 ?
java - 从 Windows 机器在 Linux 上调试远程 WildFly
更新
我在 Linux (RedHat 7.9) 服务器上调试远程 WildFly 应用程序时遇到了麻烦。我的 IDE Intellij Idea 2020.1 在 Windows 10 下运行。
在 Linux 服务器上:
openjdk 版本“1.8.0_282”
OpenJDK 运行时环境(内部版本 1.8.0_282-b08)
OpenJDK 64 位服务器 VM(内部版本 25.282-b08,混合模式)
在 Windows 客户端计算机上:
openjdk 版本 "1.8.0_282"
OpenJDK 运行时环境 (AdoptOpenJDK)(build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.282-b08, 混合模式)
我使用 --debug 选项启动 WildFly。它强制 jvm 使用以下选项启动 WF:
-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"
然后我看到调试端口 8787 没问题并监听:
网络统计-ln | grep 87
tcp 0 0 0.0.0.0:8787 0.0.0.0:* 听
我可以使用jdb从其他Linux 服务器连接到这台机器,并且一切正常:
jdb -attach 10.20.20.40:8787 正在
初始化 jdb ...
但是,当我尝试使用 Idea 从我的Windows工作站连接到调试端口时 - 连接失败。在服务器上使用 netstat 我看到调试端口正在监听我的客户端机器。因此,尝试从 Win 连接到 Linux 调试端口会导致客户端连接失败。但在服务器端端口保持连接。我必须重新启动 WildFly 才能再次打开调试端口。
当我尝试使用 Windows 机器上的 jdb 进行连接时,也会发生同样的事情。
这里共享内存传输根本不起作用。
jdb
-attach 10.20.20.40:8787 java.io.IOException: shmemBase_attach failed: The system cannot find the file specified at com.sun.tools.jdi.SharedMemoryTransportService.attach0(Native Method) at com.sun.tools.jdi.SharedMemoryTransportService .attach(SharedMemoryTransportService.java:108) 在 com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:116) 在 com.sun.tools.jdi.SharedMemoryAttachingConnector.attach(SharedMemoryAttachingConnector.java:63) 在 com。 sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:519) 在 com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:328) 在 com.sun.tools。 com.sun.tools.example.debug.tty.TTY.main(TTY.java:1083) 处的 example.debug.tty.Env.init(Env.java:63)
致命错误:无法附加到目标 VM。
所以我们应该尝试使用套接字。
jdb -connect com.sun.jdi.SocketAttach:主机名=10.20.20.40,端口=8787
现在一切看起来都很好。
linux 服务器上的 netstat 显示已建立状态:
sudo netstat -nlp -a | grep 8787
tcp 0 644 10.20.20.40:8787 10.20.30.51:5344 已建立 15480/java
同时在win客户端上,我看到该连接已建立:
网络统计-a | findstr 5344
TCP 10.20.30.51:5344 10.20.20.40:8787 已建立
等待几秒钟,然后:
内部异常:com.sun.tools.jdi.TargetVM.waitForReply(TargetVM.java:307) 上 com.sun.tools.jdi.VirtualMachineImpl.waitForTargetReply(VirtualMachineImpl.java:1030) 上的 com.sun.jdi.VMDisconnectedException .sun.tools.jdi.PacketStream.waitForReply(PacketStream.java:69) 在 com.sun.tools.jdi.JDWP$EventRequest$Set.waitForReply(JDWP.java:6910) 在 com.sun.tools.jdi.JDWP $EventRequest$Set.process(JDWP.java:6875) 在 com.sun.tools.jdi.EventRequestManagerImpl$EventRequestImpl.set(EventRequestManagerImpl.java:201) 在 com.sun.tools.jdi.EventRequestManagerImpl$EventRequestImpl.setEnabled(EventRequestManagerImpl .java:166) 在 com.sun.tools.jdi.EventRequestManagerImpl$EventRequestImpl.enable(EventRequestManagerImpl.java:151) 在 com.sun.tools.example.debug.tty.EventRequestSpec.resolveEagerly(EventRequestSpec.java:139) 在com.sun.tools.example.debug.tty。EventRequestSpecList.addEagerlyResolve(EventRequestSpecList.java:98) at com.sun.tools.example.debug.tty.Commands.resolveNow(Commands.java:1125) at com.sun.tools.example.debug.tty.Commands.commandCatchException( Commands.java:810) 在 com.sun.tools.example.debug.tty.VMConnection.setEventRequests(VMConnection.java:427) 在 com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java: 337) 在 com.sun.tools.example.debug.tty.Env.init(Env.java:63) 在 com.sun.tools.example.debug.tty.TTY.main(TTY.java:1083)VMConnection.open(VMConnection.java:337) 在 com.sun.tools.example.debug.tty.Env.init(Env.java:63) 在 com.sun.tools.example.debug.tty.TTY.main( TTY.java:1083)VMConnection.open(VMConnection.java:337) 在 com.sun.tools.example.debug.tty.Env.init(Env.java:63) 在 com.sun.tools.example.debug.tty.TTY.main( TTY.java:1083)
服务器端口状态保持建立,直到服务重新启动:
sudo netstat -nlp -a | grep 8787
tcp 0 644 10.20.20.40:8787 10.20.30.51:5344 已建立 15480/java
但客户端已断开连接
网络统计-a | 发现str 5344
那么是否可以使用 Windows IDE 在 Linux 上调试 wildfly 或 java?
为什么客户端调试会话可以在连接尝试后关闭?
jdb套接字是否有一些超时设置?