首页
学习
活动
专区
圈层
工具
发布

此情可待成追忆:Java Mac 版的黄金时代

在将其移植到 Windows 的过程中,最难的就是为它开发安装程序。一开始,我用 Launch4J 为它创建了 Windows.exe 的启动程序。...因为这个“安装程序”本身就是 Java 应用,所以我使用 Launch4J 为这个安装程序创建了启动程序。...依我看,当时我有三个选择: 1. 用 Objective-C 将我的应用重写为原生 Mac 应用。 2. 等待 Oracle 新的 JDK7 Mac 版本,并尝试将其与我的应用程序捆绑。 3....如果我可以重构代码,让 UI 完全模块化,那么我就有可能在这些替代编译器中编译业务逻辑,并将其与另一个 UI 工具包(比如 SWT、QT 或 Cocoa)配对。 我发现 GCJ 的输出很难处理。...我所用的老式捆绑器和苹果的 Java 绑定,并没有将 JRE 捆绑到应用中,而是将它和系统中的 Java 安装绑定。在 JDK7 中,你需要将整个 JRE 捆绑到你的应用捆绑器中。

1.1K20

使用 exe4j 将 Spring Boot 项目打包为 EXE 可执行文件

使用 exe4j 将 Spring Boot 项目打包为 EXE 可执行文件 什么是 exe4j Exe4j 是一款用于将 Java 应用程序打包为 Windows 平台上可执行文件(.exe)的工具。...无论是服务器端、GUI 程序还是命令行应用,都可以通过 exe4j 生成独立的 EXE 文件。此外,exe4j 还可以: 替代默认的 java.exe,以自定义进程名出现在任务管理器中。...配置启动动画 可忽略 8.配置Message 可忽略 9.编译 编译完成后在输出目录就能看到了 此时直接点击输出目录的exe文件即可运行,或者点击截图里面的Click Here to Start the...JRE 捆绑: 如果目标环境可能没有安装 JDK/JRE,建议将最小化的 JRE(如使用 jlink 生成的)与应用程序一同打包。...如果您的项目使用了 JDK 17 或更高版本,请改用其他工具(如 Launch4j 或 jpackage)。 路径配置: 使用相对路径可以提高可移植性,尤其是在捆绑 JRE 的情况下。

2.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一张PDF了解JDK11 GC调优秘籍-附PDF下载

    简介 JDK11相比JDK10,添加了一个新的Source-File Mode,可以直接通过java来运行单个java源文件,而不需要进行编译。...所以JDK11的JVM参数吸收了JDK9,JDK10的新特性和改动,并在他们的基础上进行了微调。 同样在文章最后,我也将JDK11的GC调优秘籍做成了一张PDF,欢迎大家下载。...-XX:+UseAppCDS AppCDS是在JDK9 JPMS中引入的新特性,可以提升java程序的启动速度。 AppCDS默认情况下是开启的所以这里也废弃掉了。...有两种方式使用Source-File Mode,一种是源文件后面带.java后缀,如: java HelloWorld.java 一种是添加参数–source version选项: java -source...Code Heap状态分析 我们知道JVM中的JIT编译器会将一些热点的java代码编译成机器码,而这些机器码会存储在一个叫做code cache的地方。

    1.1K31

    Win10安装jdk11及环境变量配置

    大家好,又见面了,我是你们的朋友全栈君。 Win10安装jdk11及环境变量配置 写在前面 我第一次安装java是在17年初,距离现在已经一年半了。...至此,环境变量已经配置完成,在cmd分别输入javac –version和java –version,得到如下输出: 接着编译执行个java小程序看看是不是真的能用了,结果如图: OK...关于ClassPath环境变量的配置:jdk-1.8.0是把jre放在了jdk目录下,jdk10是把jre和jdk放在同一目录下,而jdk11就不知道把jre放哪儿了,反正我是没找到。。。...其实就算没有ClassPath这个环境变量,一般的java程序也能运行,因为这时默认在当前目录寻找class文件,只要程序使用到的class文件都放在当前目录下,是不会有问题的。...以及jre是不需要自己另外下载安装的,jre都包含在jdk的安装路径下(虽然我暂时还没有找到jdk11的jre在哪里orz)。

    6K10

    JDK8升级JDK11最全实践干货来了

    01 为什么升级JDK11 在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!...综合评估,从Java 8 升级到 Java 11,G1GC平均速度提升16.1%,ParallelGC为4.5%(基于OptaPlanner的用例基准测试表明https://www.optaplanner.org...1.4 长期支持版本 JDK11是Oracle官方发布的一个长期支持(LTS),意味着它将获得长期的更新和支持,有助于保持用程序的稳定性和可靠性。...在Java8和更早的应用程序中,应用程序将包作为顶级组件,Java9以后应用程序将模块作为顶级组件。 一个模块(Jar包)只能有一个module-info.java。...拆分包始终是不正常的,而当使用解析可传递依赖项的构建工具(如Maven等)时,很容易出现同一个库的多个版本,当Java模块系统检测到一个包存在于模块路径上的多个模块中时,就会拒绝启动。

    2.9K20

    JDK11发布了?学不动了啊!

    我知道你学不动了,但还是很平静的告诉你,jdk11发布了。没错,就是昨天,2018年9月25日,它,发布了。 相信你之前已经在本号里学到了不少JDK11的新特性,我们这个号的特点就是爱学习。 ?...2、JDK11中增加了一个常量池类型:CONSTANT_Dynamic 3、Epsilon: 一个啥也不干的垃圾收集器( No-Op Garbage Collector) 这个有什么用呢?...Nashorn是一个用java语言编写的js引擎,听听是不是很酷,这个引擎于2011被发布,如今要离我们而去了。...6、Fight Recorder 是一个全新的可以帮你跟踪和分析java应用程序和hotspot jvm等的一个记录仪。...7、支持启动单文件源码程序(Launch Single-File Source-Code Programs) 以后你可以不用先编译(javac)再启动(java)了,jdk11以后直接通过java Helloworld.java

    1.2K30

    第68篇:javafx编写扫描器UI界面的线程死锁问题及坑点总结

    但是实测结果,经常在如下代码中,出现报错问题,导致程序崩溃,所有扫描任务停止。 这是一个隐藏非常深的线程安全bug,在一天中会不定时的出现几次,而且没办法复现,让我大伤脑筋。...最终没有办法,我将其中一个TabPane界面的Tab标签删掉,用纯java代码编写,有时候用纯java代码写图形界面比拖拽是要方便的。...坑7:javafx在jdk11至jdk17的编译问题 按照正常的编写javafx程序的流程,idea 2022版本编译出来的jar包,有时候会提示找不到主类,有时候会提示缺少JavaFX运行组件。...对于jdk8下的javafx的编译,很简单,直接编译成一个jar包就可以在jdk8上双击运行,因为jdk是自带javafx库的,但是对于更高版本的jdk,比如说jdk11或者jdk17,默认是不带javafx...网上有很多解决这个问题的方法,但是说法不一,于是我经过各种测试,得出如下步骤,可以保证编译的jar包能够正常运行。

    1.3K41

    Java那些事之JDK环境配置及集成开发环境Eclipse安装

    这篇文章适合那些什么都不懂JAVA但很想下载来玩玩(学习)的同学,我会用足够通俗的语言解释接下来的一切操作 开门见山,你要舒服地用JAVA写代码,就得安装JDK、eclipse(IDE,只是一个集成开发环境...①JVM(Java Virtual Machine): Java虚拟机,Java程序运行在其中. java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行...包括JVM和Java核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。...代码的思路一样的,我们为什么要下载eclipse,因为不想要那么麻烦编写一个java文件就命令行操作一遍,用一个美观的IDE取代之,是大家喜闻乐见的。...我们先学习SE部分,为之后EE部分学习打下基础 话不多说,进入正题~ JDK下载: 进入Java的官网:直接搜索JDK(或者点击下方链接)即可: 一般推荐JDK11,比较稳定 JDK11的下载网址,在里面找到即可

    1.2K30

    Java中JDK8、JDK11、JDK17,该怎么选择?

    JDK8 如果你在技术交流群或一群Java程序员中讨论JDK版本选择哪个,我相信,一般来说,他们都脱口而出:“JDK8”。 那么这个版本究竟为何受众面如此之广泛呢?...JDK11 科技在慢慢发展,在使用JDK8开发程序时,总存在一些弊端,也多了许许多多的需求,所以慢慢的,Oracle也发布了另一个长期支持更新维护版本——JDK11。...变量类型推断 新版Java引入了一个全新的类型关键字var,用var来定义的变量不用写具体类型,编译器能根据=右边的实际赋值来自动推断出变量的类型。 具体的话,就自己去尝试吧。...总结 除了这两个明显的变化,其实还有很多内部结构方法的增加。就不多说了。 实际是,我个人觉得,如果不是有对应需求,那还是老老实实的用JDK8吧。...因为,说实话,JDK11的生态不太行,参杂在JDK8与JDK17之间。 JDK17 JDK17也是长期支持版本,相比11一般来说更具优势,但是,我查阅了一些网络上其他大佬的评价。

    86.1K73

    极简,利用Docker仅两行命令就能下载和编译OpenJDK11

    通常情况下,编译OpenJDK11源码构建新的JDK需要以下步骤: 下载OpenJDK11源码; 按自己需求修改OpenJDK11源码; 准备编译环境; 编译构建新的JDK; 现在利用Docker...镜像文件较大,使用镜像加速对下载速度提升明显; 实战步骤 今天实战的内容如下: 用一行命令,通过Docker把OpenJDK11源码下载到本地; 按照自己的需求修改OpenJDK11源码; 用一行命令,...下面会出现一个名为jdk11文件夹,这里面就是OpenJDK11的源码; 修改OpenJDK11源码 接下来是您根据自己的需要去修改OpenJDK源码,举个例子,我修改的文件位于以下位置: jdk11/...\ bolingcavalry/buildopenjdk11:0.0.2 编译构建的速度和电脑硬件有关,构建完成后,打开文件jdk11/build/linux-x86_64-normal-server-release.../java -version,可以看到下图信息,红框中就是我们修改的效果: ? 至此,OpenJDK11源码的下载、修改、编译就这么完成了,是不是很简单呢?

    1.7K10

    JDK11升级JDK17最全实践干货来了

    本篇文章将为你介绍一种能够提供百倍性能提升的垃圾回收器,也许能够解决你的问题。 01 前言 在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。...由此我的Runner探索之旅开始了! 京东技术公众号发布过文章JDK8升级JDK11的最全实践,相信读者阅读后已经对JDK11有了比较深入的了解。...长期支持版本 JDK17是Oracle官方在2021年9月14日发布的一个长期支持(LTS)版本,意味着它将获得长期的更新和支持,有助于保持程序的稳定性和可靠性。 2. 性能提升 更好的垃圾回收器。...它适用于存储纯粹的值类型数据,如接口传输数据、坐标点和只读的日志记录。与 lombok 相比,record 简化了定义纯粹数据类型的过程。...查看编译后的字节码文件 3.

    2.4K10

    重磅更新,是否可以拯救 Java

    这提供了对最新 web 容器(如 Tomcat 10.1)和最新持久性提供程序(如 Hibernate ORM 6.1)的访问。...有两种编译 Java 应用程序的方法:使用即时编译 (JIT) 或提前编译 (AOT)。第一种是默认模式,Java Hotspot 虚拟机使用它在运行时将字节码转换为机器码。...GraalVM 是一种高性能 JDK,旨在加速用 Java 和其他 JVM 语言编写的应用程序的执行,同时还为 JavaScript、Python 和许多其他流行语言提供运行时。...GraalVM 提供两种运行 Java 应用程序的方法:在 HotSpot JVM 上使用 Graal 即时 (JIT) 编译器或作为提前 (AOT) 编译的本机可执行文件。...GraalVM 向 HotSpot Java 虚拟机添加了一个用 Java 编写的高级即时 (JIT) 优化编译器。

    9.8K12

    Ubuntu环境编辑OpenJDK11源码

    ,位于此目录下:/usr/lib/jvm,因此boot JDK的完整目录是/usr/lib/jvm/jdk-10 以上是我这边的文件路径,如果您和我的不一致也没关系,后面注意修改成您自己对应的即可; 正式开始...编译的时候会用到boot JDK的jre目录下的lib库,我们这里只有JDK没有jre,因此需要创建一个jre目录,再把jdk的lib文件夹复制到这个目录下,执行以下命令: mkdir /usr/lib.../jvm/jdk-10/jre && cp -r /usr/lib/jvm/jdk-10/lib /usr/lib/jvm/jdk-10/jre/ 我用的是root账号,因此将OpenJDK11源码文件夹的所有者和用户组都改成...root的,在目录/home/willzhao/work/compileopenjdk执行以下命令: chown -R root jdk11 && chgrp -R root jdk11 安装必要的依赖应用.../java -version,可见最新的版本信息如下,已经是11版本了: root@willzhao-Lenovo-Ubuntu16:/home/willzhao/work/compileopenjdk

    1.2K20

    【RocketMq】RocketMq 高版本JDK编译报错问题处理

    java: 程序包sun.nio.ch不存在sun.util.locale.BaseLocale.SEP不存在Idea的报错情况在Idea 2021.1 的版本中会出现如下问题,这个报错第一眼看着挺懵逼的...思考关键的灵感来自于下面这篇文章,个人按照文章的思路,先把整个项目从maven到项目整个配置使用的统一JDK版本,所以索性全换成JDK11尝试。...图片最后就是项目本身的版本了:图片图片图片这样一通配置之后,发现还是会报同样的错,所以可以确定是模块化的问题,但是问题是我在编译的时候如何加参数?...store 子项目编译参数设置为:--add-exports java.base/sun.nio.ch=ALL-UNNAMEDtest 子项目的编译参数设置为:--add-exports java.base...小结长期JDK8选手,工作也不不允许用JDK8更高的版本,外加外部设施对于高JDK版本支持度不够,比如JDK11的Jenkins就有问题。

    2.1K40

    java三大平台介绍,选择哪个平台学习java编程?

    工欲善其事必先利其器,既然JAVA要喊出了“Write Once,Run Anywhere”的口号,那肯定有自己独特的一套工具,让JAVA代码一次编译、处处运行,这套工具也叫JAVA运行环境或JAVA程序平台...,如移动电话,掌上电脑、电视机机顶盒等,使得编译好的JAVA程序能够在上面执行,目前该平台官网最新版本为JAVA ME8。...选择哪个平台学习 三大平台各有特点,但是共同点都是平台内部包含了JAVA 虚拟机,编译好的程序在平台执行的流程大致如下:虚拟机将编译好的字节码文件加载到内存,然后采用解释执行的方式执行字节码(所谓解释执行即...JDK之间的事,要扯起来能说半天,有时间再单独开一篇文章谈谈) 下载地址: http://jdk.java.net/   注:本文演示使用JDK11版本(推荐大家学习时尽量使用JDK8或者JDK11...  3、编译、并执行JAVA程序,大功告成 小结   本文主要介绍了关于JAVA的三大平台、如何搭建JAVA SE平台以及搭建第一个JAVA程序,初学者会感觉步骤稍微麻烦,但是这个搭建是永久性的

    1.2K30

    【RocketMq】RocketMq 高版本JDK编译报错问题处理

    java: 程序包sun.nio.ch不存在 sun.util.locale.BaseLocale.SEP不存在 Idea的报错情况 在Idea 2021.1 的版本中会出现如下问题,这个报错第一眼看着挺懵逼的...思考 关键的灵感来自于下面这篇文章,个人按照文章的思路,先把整个项目从maven到项目整个配置使用的统一JDK版本,所以索性全换成JDK11尝试。...最后就是项目本身的版本了: 这样一通配置之后,发现还是会报同样的错,所以可以确定是模块化的问题,但是问题是我在编译的时候如何加参数?...store 子项目编译参数设置为: --add-exports java.base/sun.nio.ch=ALL-UNNAMED test 子项目的编译参数设置为: --add-exports java.base...小结 长期JDK8选手,工作也不不允许用JDK8更高的版本,外加外部设施对于高JDK版本支持度不够,比如JDK11的Jenkins就有问题。

    95520

    JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK11特性讲解】

    JDK各个版本特性讲解-JDK11特性 lecture:波哥 一、JAVA11 概述   2018年9月26日,Oracle官方发布JAVA11.这是JAVA大版本周期变化后的第一个长期支持版本...(实验) 335:已弃用Nashorn JavaScript引擎 336:已弃用Pack200工具和API 二、语法层次的变化 1....String新增的方法   在JDK11中对String处理新增的很多方法。...更简化的编译运行   JAVA11 提供了更简化的编译运行程序,编译一个java源代码文件语法应该是 javac Test1.java   解释执行一个java字节码的语法应该是 java Test1...  在我们目前的知识里面,运行一个java源代码必须经过两个不中,一个是编译,一个是解释执行,而在java11中,通过一个java命令就可以直接搞定了,语法是: java Test1.java 需要注意的是

    1.2K20

    JDK8升级JDK11经验总结

    引言 随着Java语言的不断演进,我们迎来了JDK 11的时代。JDK 11作为Java平台的一个重要版本,不仅引入了许多令人振奋的新特性,还对性能、安全性和模块化系统进行了关键的改进。...这可以帮助提高应用程序的性能,减少资源消耗,使其更具竞争力。 模块化系统:引入的模块系统使得项目更容易维护和管理。...打包问题、Spring启动问题等 本方案为jdk8升级到jdk11.0.2 以下是我遇到的问题以及解决方案 项目启动dubbo引用失败 jdl8升级jdk11 Dubbo所依赖的Spring所使用的javassist...打包报错需增加依赖(注中含有尖括号) 在java项目中打包时会引入maven-javadoc-plugin插件将java注解打包到一个jar包中,但是如果java的注解不够标准的话则会抛出异常,无法正常的打包...执行性能测试:运行性能测试以确保在JDK11 下的性能表现是可接受的。 使用监控工具(如VisualVM、JConsole等)检查应用程序的内存和 CPU 使用情况。

    1.2K20

    Android 12 编译之坑

    ,确实打包没有问题,由于我们的平台打包机环境用的是 jdk8,所以,我们向基础平台化提出了希望能升级 jdk11 的请求,但基础平台化那边的反馈是,该 jdk11 并没有经过验证,并且该变更会影响到多个业务线的打包...由于我们的项目结构是组件化的模式,主工程依赖的都是 aar 业务组件,所以,发生 javac 的问题只能是主工程里面的几个 java 类,但主工程只有 2 个 java 类,一个是 Application...异常日志中的 DaggerXXXApplication_HiltComponents 类是通过 Hilt 的 apt 生成的 java 中间类,为啥这个中间类用 jdk8 编译就会失败呢?...其实他的注释也给的很明白: 该模块的编译最少需要 jdk9 版本,真相大白,怪不得使用 jdk11 能编译通过。...总结: 虽然这次我们找到了是 @Deprecated 注解的问题,但不确定是否还有其他的注解也会跟 @Deprecated 一样,需要更高的 jdk 版本编译才能通过,所以,最好的方式还是提前预研 jdk11

    90430

    写 Java 这么久了,来编译个 JDK 玩玩儿吧

    我本地是很早之前安装的 xcode 8.1,编译起来是没问题的,如果你用的是比较新的版本,应该也不会出现什么问题,可以亲自试一试。...开始编译 1、下载 OpenJDK 11 源码 OpenJDK 的源码放在了网站 http://hg.openjdk.java.net/ 上,我们要下载的 JDK11 目录在 http://hg.openjdk.java.net...hg clone https://hg.openjdk.java.net/jdk/jdk11/ 2、解压源码包 将你刚刚下载的压缩包解压,请解压到一个全英文目录下,不要使用中文,减少编译时带来的麻烦。...2、配置 Debug Configurations,选择 Executable 为编译好的 java 可执行程序,在 bin 目录下,并且移除 Build 设置。...风筝说 真正能做到 JDK 定制开发的人并不多,我也完全没这个实力。但是每个 Java 开发者都编译一下 JDK 源码,翻一翻代码还是很有必要的。

    1.3K10
    领券