Difference between revisions of "Installation"

From Kolmafia
Jump to navigation Jump to search
(3 intermediate revisions by the same user not shown)
Line 14: Line 14:
  
 
===Java 11 or better (Java 17 recommended)===
 
===Java 11 or better (Java 17 recommended)===
KoLmafia depends on finding Java 11 or better.  The recommended version is linked at the top of every page of kolmafia.us.   
+
KoLmafia depends on finding Java 11 or better.  The recommended version is linked at the top of every page of kolmafia.us.  If you are executing KoLmafia from a jarfile, you will need to install Java first.   
  
 
If you do not have a recent version of Java, the recommended version (as of this writing) is [https://adoptium.net/index.html Java 17].   
 
If you do not have a recent version of Java, the recommended version (as of this writing) is [https://adoptium.net/index.html Java 17].   
Line 24: Line 24:
  
 
<code>Michaels-MBP:~ mcroft$ java -version<br />openjdk version "16.0.1" 2021-04-20<br />OpenJDK Runtime Environment Zulu16.30+15-CA (build 16.0.1+9)<br />OpenJDK 64-Bit Server VM Zulu16.30+15-CA (build 16.0.1+9, mixed mode, sharing)</code>
 
<code>Michaels-MBP:~ mcroft$ java -version<br />openjdk version "16.0.1" 2021-04-20<br />OpenJDK Runtime Environment Zulu16.30+15-CA (build 16.0.1+9)<br />OpenJDK 64-Bit Server VM Zulu16.30+15-CA (build 16.0.1+9, mixed mode, sharing)</code>
==== Troubleshooting Java====
+
== Troubleshooting Runtime Issues==
 +
=== Java Errors===
 
Please be aware that some older versions of Java do not get completely replaced when installing a newer version.  Usually this happens with Java 8 JRE and Java 11+ JDKs.  If that makes no sense, just delete Java 8.
 
Please be aware that some older versions of Java do not get completely replaced when installing a newer version.  Usually this happens with Java 8 JRE and Java 11+ JDKs.  If that makes no sense, just delete Java 8.
  
 
If you get a message like this:<code>Error: A JNI error has occurred, please check your installation and try again.</code> Please [https://kolmafia.us/threads/java-11-now-required-for-kolmafia-java-17-recommended.26579/ read this announcement].
 
If you get a message like this:<code>Error: A JNI error has occurred, please check your installation and try again.</code> Please [https://kolmafia.us/threads/java-11-now-required-for-kolmafia-java-17-recommended.26579/ read this announcement].
  
===HiDPI Support===
+
===Scaling support on HiDPI Monitors===
  
The default builds target Java  and use Java Swing to provide its user interface. This means that Java Swing support for HiDPI on Linux is not present. Java 9's Swing includes support for HiDPI. Thus to have HiDPI support one needs to compile it targeting Java 9. To do so, checkout the source from the sourceforge repository using subversion. Ensure that you have some version of JDK 9 installed and configured on your computer as the default java compiler, and also an up-to-date version of Apache Ant. Change the line in 'build.properties' from 'target="1.6"' to 'target="1.9"'. This compiles the source into a version that has support for HiDPI; the built jar will be located at the 'dist' folder. Finally, execute the '.jar' file with an option set as follows: 'java -Dsun.java2d.uiScale=<multiplier> -jar <jarfile>'; e.g. in my case, '<multiplier>' should be '2'.
+
If the KoLmafia application is unexpectedly small on a [https://techterms.com/definition/hidpi HiDPI]/Retina Display monitor, then support for HiDPI should enabled.  This should only be required on Linux, since HiDPI support is enabled automatically on Windows and MacOS.
 +
 
 +
On Linux, using HiDPI with a Java Swing application (such as KoLmafia) requires that you execute the '.jar' file with an option set as follows: <code>java -Dsun.java2d.uiScale=<multiplier> -jar <jarfile></code>
 +
 
 +
Depending on the screen size, a multiplier of 1.6 or 2.0 may be appropriate. You may need to experiment to find the ideal scaling multiplier for your screens.
  
 
[[Category:Tech Support]]
 
[[Category:Tech Support]]
 
[[Category:New User Help]]
 
[[Category:New User Help]]

Revision as of 18:05, 28 December 2021

How to Download the latest version.

The latest source build can be downloaded from the following locations:

  1. builds.kolmafia.us
  2. the GitHub releases page.

Both of these sources have tested versions that are posted shortly after developers change code.

The GitHub releases page contains both the KoLmafia-xxxxx.jar java binaries and installers for an experimental version that includes a bundled version of Java. If you use the installers, they manage the Java dependency listed below, but it can be more difficult to troubleshoot issues.

Dependencies

Java 11 or better (Java 17 recommended)

KoLmafia depends on finding Java 11 or better. The recommended version is linked at the top of every page of kolmafia.us. If you are executing KoLmafia from a jarfile, you will need to install Java first.

If you do not have a recent version of Java, the recommended version (as of this writing) is Java 17.

Testing your Java installation

From a Command Prompt (or Terminal) window, enter java -version

If that returns something like this, you should be good to go.

Michaels-MBP:~ mcroft$ java -version
openjdk version "16.0.1" 2021-04-20
OpenJDK Runtime Environment Zulu16.30+15-CA (build 16.0.1+9)
OpenJDK 64-Bit Server VM Zulu16.30+15-CA (build 16.0.1+9, mixed mode, sharing)

Troubleshooting Runtime Issues

Java Errors

Please be aware that some older versions of Java do not get completely replaced when installing a newer version. Usually this happens with Java 8 JRE and Java 11+ JDKs. If that makes no sense, just delete Java 8.

If you get a message like this:Error: A JNI error has occurred, please check your installation and try again. Please read this announcement.

Scaling support on HiDPI Monitors

If the KoLmafia application is unexpectedly small on a HiDPI/Retina Display monitor, then support for HiDPI should enabled. This should only be required on Linux, since HiDPI support is enabled automatically on Windows and MacOS.

On Linux, using HiDPI with a Java Swing application (such as KoLmafia) requires that you execute the '.jar' file with an option set as follows: java -Dsun.java2d.uiScale=<multiplier> -jar <jarfile>

Depending on the screen size, a multiplier of 1.6 or 2.0 may be appropriate. You may need to experiment to find the ideal scaling multiplier for your screens.