Troubleshooting MacOS

  • Updated

MacOS: Java/JDK setup 

Some Java distributions for MacOS are incompatible with the tool.

If you get a fatal error after login, this is most likely due to an incompatible Java version.

 

Starting April 2019, Oracle Java requires licensing for commercial use. Hence, the download at https://www.java.com/nl/download/ (first hit of Google) is outdated and also limited to personal or demonstration use.

If you intend to use the application commercially, and you don’t have a Java license, we recommend installing OpenJDK, for which Adoptium (Eclipse foundation, used to be AdoptOpenJDK) provides a distributable at

 

https://adoptium.net/

 

A complete JDK can also be download at  https://jdk.java.net/.

 

Removing other versions of Java/JDK (if applicable)

If a specific version of Java is not required for other applications, we recommend removing any previous installs of Java.

Otherwise you will have to specify which Java runtime to use, see section 11.3 Create a command script to use the correct Java version (Optional)

Please refer to the documentation of your specific MacOS version on how to uninstall apps.

 

Advanced users might find inspiration here:

https://explainjava.com/uninstall-java-macos/ 

 

Installing a compatible version of Java

 

You can select the latest

latest.png

 

or you can manually select a more compact JRE distributable (36 MB): (ohter platforms)

 

latest.png

Select macOS as operating system, the correct architecture and then either choose the package .pkg file (recommended) or the tar.gz file for manual installation (not further explained in this document):

 

drop.png

For the .pkg file, run it and follow the suggested instructions. Run “java -version” in a terminal to make sure the correct version of java is now the default.

 

Instructions for installing the tar.gz can be found here:

https://adoptium.net/installation/archives/#_macos

 

We recommend using the folder /Library/Java/JavaVirtualMachines for any JDK install.

 

Create a command script to use the correct Java version (Optional)

If you want to keep other Java versions, or if you need specific options to avoid memory issues, you must create a command script.

 

Open a text editor, create a “fieldsoftware.command” file, in the same folder where you placed the jar file, and add the following to the file:

 

<path-to-installed-jre-java> -jar <path-to-MAPEO-Field-Software.jar>

 

warning.png

Renaming the MapEO-Field-Software-<version>.jar to MAPEO-Field-Software.jar avoids having to edit this batch file each time there is an update of the software. However, this is not recommended.

 

An example of a macOS cmd line is given below:

 

/Library/Java/JavaVirtualMachines/temurin-11.jre/Contents/Home/bin/java -jar /Users/johndoe/Desktop/MAPEO-field-software.jar

 

Before the cmd file can be executed, you need to set the permission rights for the file, using the “chmod” command in a terminal window:

 

chmod 755 <path-tofieldsoftware.command>

 

 

Double-clicking on the command file will start the application.

 

 

warning.png

If the application fails to start:

  • Right click on the command file.
  • Scroll down to the "Open With" section and set it to “Terminal”.
  • If “Terminal” is not listed as an option, select "Other..." from the menu and browse to Terminal (which can be found in Applications - Utilities).
  • Next, click the "Change All" button, and as of now each ".command" file will be opened with Terminal and the script will be executed.

 

If you experience memory issues (heap space warnings):

  • Make sure to shut down the application and save your files.
  • Try using “java -Xmx1024m” or “java -Xmx2048m” in the command line if your system has more than 1GB or 2GB of memory respectively.

 

Solving a crash of the tool after login

If you have previously tried opening the Field Software with an incompatible java version on macOS, you may see this error:

 

Application Specific Information:

/usr/lib/libcrypto.dylib

abort() called

Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI.

 

Thread 0:: Dispatch queue: com.apple.main-thread

0   libsystem_kernel.dylib            0x00007fff6cb19dfa mach_msg_trap + 10

1   libsystem_kernel.dylib            0x00007fff6cb1a170 mach_msg + 60

2   com.apple.CoreFoundation          0x00007fff327da785 __CFRunLoopServiceMachPort + 247

3   com.apple.CoreFoundation          0x00007fff327d9252 __CFRunLoopRun + 1319

4   com.apple.CoreFoundation          0x00007fff327d86ce CFRunLoopRunSpecific + 462

5   com.apple.HIToolbox               0x00007fff31404aad RunCurrentEventLoopInMode + 292

6   com.apple.HIToolbox               0x00007fff314047c5 ReceiveNextEventCommon + 584

7   com.apple.HIToolbox               0x00007fff31404569 _BlockUntilNextEventMatchingListInModeWithFilter + 64

8   com.apple.AppKit                  0x00007fff2fa4d659 _DPSNextEvent + 883

9   com.apple.AppKit                  0x00007fff2fa4bea0 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352

10  libosxapp.dylib                   0x000000011bf1d96a -[NSApplicationAWT nextEventMatchingMask:untilDate:inMode:dequeue:] + 122

11  com.apple.AppKit                  0x00007fff2fa3dbae -[NSApplication run] + 658

12  libosxapp.dylib                   0x000000011bf1d739 +[NSApplicationAWT runAWTLoopWithApp:] + 185

13  libsplashscreen.dylib             0x000000011bf00736 __SplashInitPlatform_block_invoke + 70

14  JavaNativeFoundation              0x00007fff370f8ff9 +[JNFRunLoop _performCopiedBlock:] + 15

15  com.apple.Foundation              0x00007fff34eb1b4d __NSThreadPerformPerform + 204

16  com.apple.CoreFoundation          0x00007fff327da5e2 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17

17  com.apple.CoreFoundation          0x00007fff327da581 __CFRunLoopDoSource0 + 103

18  com.apple.CoreFoundation          0x00007fff327da39b __CFRunLoopDoSources0 + 209

19  com.apple.CoreFoundation          0x00007fff327d90ca __CFRunLoopRun + 927

20  com.apple.CoreFoundation          0x00007fff327d86ce CFRunLoopRunSpecific + 462

21  libjli.dylib                      0x000000010f4b5d12 CreateExecutionEnvironment + 402

22  libjli.dylib                      0x000000010f4b1745 JLI_Launch + 1493

23  java                              0x000000010f4a1c16 main + 406

24  libdyld.dylib                     0x00007fff6c9d8cc9 start + 1

 

 

If you experience Field Software configuration problems, you may see this error:

fail.png

 

warning.png

To solve the above errors, you need to remove the configuration information of the software.

  • If you’ve only started the application once, you can delete the installation folder completely.
  • In case you’ve used the software before and want to keep your existing missions, only delete the (user-specific) config file!

 

To remove the installation folder, locate the “MapEO Field Software” folder and delete it.

To remove the config file, locate the “config.xml” file and delete it.

 

To locate and remove the installation folder or config file, you can either use the GUI or a terminal, as described in the section below.

After removal, you can retry to start the tool with a compatible java version (see previous sections).

 

Browsing to the configuration folder using the GUI

Open the MacOS file explorer (Finder):

finder.png

 

Go to the home folder:

explorer.png

 


Hold down the Command, Shift and Period keys: cmd + shift + [.] to see hidden files.

 

The “.Mapeo Field Software” folder should appear. If you’ve only started the application without really using it, you may delete the folder completel. Otherwise only delete the config.xml file to keep old jobs.

 

 

Browsing to the configuration folder using the terminal

You can also use a terminal to remove the folder or files, for more details, see for example:

https://www.pcmag.com/how-to/how-to-access-your-macs-hidden-files

 

file.png