Migrating to install4j 7
In nearly all cases, migrating to install4j 7 usually just involves opening and saving your project with the install4j 7 IDE. Nevertheless, there are some considerations with respect to backward compatibility and some behavioral changes.
- The minimum supported Java version is now Java 7 up from Java 6 for install4j 6.
This also means that the old Java 6 Apple JRE is no longer available as a separate type on the Bundled "JRE" step of the
macOS media wizard. The launcher runtime still supports Java 6 and you can set the compiler variable
sys.ext.forceMinJavaVersiontotruein order to allow "1.6" as a minimum version. Note that no classes in the API can be called from Java 6. - The "native splash screen" feature for Windows has been removed. This went back to the pre-Java 6 days when Java did not offer splash screen functionality and was missing several important features. If you had this feature selected for one of your launchers, it now uses the regular Java splash screen
- When a rollback terminates at a rollback barrier, the exit code of an installer application is now 0. To restore the old exit code of 1, you can set the "Exit code" child property of the "Rollback barrier" property to 1
- In the "Key validation expression" script property of text components, the "keyCode" parameter has been removed. It was always 0 before and did not serve a useful purpose.
-
If you develop your own screens with the API, the methods
isShowIndex,hasTitlePanel,hasDefaultInsetsandhasDefaultButtonshave been removed from the interfacecom.install4j.api.screens.Screenand so your existing implementation of these methods will no longer be called by install4j. This functionality is now covered by styles which are much more flexible than the previous limited styling capabilities. - In the API, methods with Object[] arguments for variable parameter lists have been converted to varargs. This should not cause source or binary incompatibilities but may show warnings in your code if you call such methods.
- The "Create a quick launch icon" action has been removed with no replacement. The last OS where it had any effect was Windows Vista.
- If you have not set a maximum Java version, and do not use a bundled JRE, any installed Java 9 JRE will be used. Java 9 has backward compatibility issues that may prevent your application from working unless you explicitly support it. Consider limiting the maximum Java version to "1.8" in that case.
- If the "Request privileges" action fails, an installation directory in the user home directory is set. To restore the old behavior of keeping the default installation directory deselect the "Fall back to user specific installation directory" property on the "Request privileges" action.
-
With install4j 7, you cannot use the deprecated
com.apple.eawt.Application.Application.getApplication().addApplicationListener(...)in the macOS EAWT API anymore, you have to use the new API methods, for exampleApplication.getApplication().setQuitHandler((quitEvent, quitResponse) -> { quitResponse.cancelQuit(); // TODO add your code });for the quit handler.
If you notice anything else, please let us know!
아카이브
11월/1
9월/3
2025/20
HotSpot의 반격: JEP 544, GraalVM 시작 성능 독점의 끝인가?SBOM이 15개월 후 의무화됩니다. 당신의 SBOM은 아마 잘못되어 있을 것입니다.Apache Fory JSON을 4.5배 더 빠르게 만든 방법
8월/3
Java vs. Kotlin: 누가 (역)직렬화를 더 빠르게 할 수 있을까?Apache Fory는 왜 그렇게 빠른가? Java 직렬화 프레임워크 5종 프로파일링jvmguard 소개: 자동 프로덕션 프로파일링
7월/2
4월/3
JProfiler MCP로 jclasslib 성능을 두 배로 개선한 방법Claude가 코드를 읽고서는 절대 찾을 수 없었던 핫스팟JProfiler 16.1: 이제 AI 에이전트가 Java 애플리케이션을 프로파일링할 수 있습니다
3월/2
2월/1
10월/1
8월/1
7월/2
2024/5
2023/7
The power of async tracking in JVM profilingWebsite refresh: Visual updates, dark mode, and semantic search for docs
6월/4
All our artifacts are now published on Maven CentralJEP 493 follow-up: install4j 11.0.4 is ready for separate JMOD bundles in Eclipse Temurin 24.0.2JProfiler tips roundup May 2025JVM performance watch roundup May 2025
5월/3
JProfiler tips roundup April 2025JVM performance watch roundup April 2025Heap Walker scripting for snapshot analysis
4월/8
Capturing and comparing MBean states with JProfilerAdvanced SSH remote profiling with JProfilerProfiling Java applications in VS Code with JProfilerAdvanced Kafka probe configuration in JProfilerProfiling Kafka #1 – Message Flow & Hot SpotsBringing JProfiler to VS Code with Kotlin Multi-PlatformCaching auto-provisioned install4j distributions in CI pipelinesCross-platform JRE bundle creation under threat from JEP 493
1월/1
9월/5
2022/10
Garbage collector analysis in JProfilerRecording JFR snapshots with JProfilerEnhanced JFR snapshot analysis with JProfilerWorking with probe events in JProfilerCustomizing telemetries in JProfiler
3월/1
1월/1
12월/2
11월/3
2021/2
2020/1
2019/1
2018/3
2017/5
2016/1
2015/10
Using sunburst diagrams for understanding Java memory consumptionUsing flame graphs when profiling Java applicationsProfiling a Netty server
10월/1
9월/1
8월/2
7월/1
11월/5
2014/3
2013/3
2012/5
2011/13
Analyzing specific parts of the call treeAnalyzing incoming and outgoing calls of a methodCollapsing recursions in the call treeRemote profiling through an SSH tunnelFinding JDBC connection leaks
6월/5
12월/1
10월/2
9월/5
2010/8
2009/14
Using the "Run interceptor script" trigger actionCreating a custom probeInspections in the heap walkerHeap walker graph: Finding paths between selected instancesFiltering in the reference view of the heap walker
8월/4
Request trackingAnalyzing long-running AWT events with JProfilerProbes overviewCPU profiling: Sampling and instrumentation
2월/1