Java on Apple M1 Mac

How to fix problems which might occur when running Java and Spring Boot on a Mac with Apple M1 processor.

Problem 1

Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS.

How to fix

Add build extension os-maven-plugin to generate os.detected.classifier


Add dependency netty-resolver-dns-native-macos


Or using profiles is probably better:


Problem 2

Tests might fail because

java.lang.IllegalStateException: No Server ALPNProcessors!
java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni-osx-aarch_64

When using Wiremock.

How to fix

Set wiremock property in application.yml

    httpsPort: -1
Docker  Mac 

Docker on Mac, and Hyperkit

Docker on Mac has an unusual architecture which makes it difficult to get a clear picture of resource consumption. Docker relies on features unique to the Linux kernel like cgroups to implement containers and as a result, requires Linux to run. Because OSX is not Linux, Docker utilizes a large Linux VM, called hyperkit to run your containers. As a result of this architecture, running docker stats doesn’t tell you everything you need to know about resource consumption. You’ll get information about the footprint of your Docker containers, but not about hyperkit, the VM needed to run those containers. As we will see, hyperkit can be quite a resource hog, tending to eat more and more memory the longer it runs and the more containers you put on it. Docker and CPU usage When Docker consistently uses a lot of CPU cycles, and the fan is running loud, try switching to the latest docker-desktop version (3 is out now). The Latest comes with: Downgraded the kernel to 4.19.121 to reduce the CPU usage of hyperkit. Fixes docker/for-mac#5044 Avoid caching bad file sizes and modes when using osxfs. [Read More]
Docker  Mac 


Fullscreen toggle with Ctrl + Command + F Move between desktops and/or fullscreens Ctrl + -> Ctrl + <- How to force an app to quit on your Mac Option + Command + Esc Or choose Force Quit from the Apple () menu in the upper-left corner of your screen. How to take a screenshot on your Mac Shift + Command + 3 -> the whole screen Shift + Command + 4 -> a portion of the screen Shift + Command + 4 + Space -> a window in the screen Function-Delete to forward delete Fn + Delete -> deletes the character to right of the cursor Control + D -> deletes the character to right of the cursor Command + Delete -> deletes whole word Option + Delete -> deletes whole word Lock screen Shift + Command + Q Open new tab (in browser, iterm, …) Command + T Switch to next/previous tab (in browser, iterm, …) Ctrl + Tab, Ctrl + Shift + Tab Command + 1, Command + 2 -> Switch to tab 1 and then tab 2 (works for the first 8 tabs) [Read More]