trying to fix

This commit is contained in:
Chris Cochrun 2022-01-03 12:41:35 -06:00
parent fa407dfeb6
commit e013d7569e
22945 changed files with 447936 additions and 0 deletions

View file

@ -0,0 +1,68 @@
<p>Today I encountered a bug that was specific to JDK 16 on a project I was working
on, and I needed to switch back my Java version to something older. I realized
I had forgotten (once again) how to switch between multiple Java version on Ubuntu
(Debian), so Ive decided to write a short article that would help me remember
this better.<sup id="fnref:1"><a class="footnote" href="https://batsov.com/articles/2021/12/10/working-with-multiple-versions-of-java-on-ubuntu/#fn:1" rel="footnote">1</a></sup></p>
<p>You can install easily multiple version of Java on Ubuntu via <code class="language-plaintext highlighter-rouge">apt</code>:</p>
<pre><code class="language-shellsession">$ sudo apt install openjdk-8-jdk openjdk-8-source openjdk-8-doc
$ sudo apt install openjdk-11-jdk openjdk-11-source openjdk-11-doc
</code></pre>
<p>Typically the newest version of Java you install will become the default, but you can easily change this:</p>
<pre><code class="language-shellsession">$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
* 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1081 manual mode
Press &lt;enter&gt; to keep the current choice[*], or type selection number:
</code></pre>
<p>Notice that pressing 0 mean “auto-select the newest Java available” (in our case Java 11).
You can now select Java 8 by pressing 2 and verify the command worked properly like this:</p>
<pre><code class="language-shellsession">$ java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~20.04-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
</code></pre>
<p>Youll need to repeat the above steps for <code class="language-plaintext highlighter-rouge">javac</code> (the Java compiler binary) as well:</p>
<pre><code class="language-shellsession">$ sudo update-alternatives --config javac
</code></pre>
<p>This much I already knew, even if I keep forgetting the exact name of
<code class="language-plaintext highlighter-rouge">update-alternatives</code>, but today I learned something new as well. You can
actually simplify the process a bit by using the specialized command
<code class="language-plaintext highlighter-rouge">update-java-alternatives</code>:</p>
<pre><code class="language-shellsession">$ update-java-alternatives -l
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
$ sudo update-java-alternatives -s java-1.11.0-openjdk-amd64
</code></pre>
<p>Quite handy! You can also go back to the latest Java version with a shorthand:</p>
<pre><code class="language-shellsession">$ sudo update-java-alternatives -a
</code></pre>
<p><code class="language-plaintext highlighter-rouge">-a</code> stands for <code class="language-plaintext highlighter-rouge">--auto</code>, meaning the Java version with highest priority (in our case Java 11 with priority 1111).</p>
<p>Thats all I have for you today. Short and sweet!</p>
<div class="footnotes">
<ol>
<li id="fn:1">
<p>Or at least look up the information faster. <a class="reversefootnote" href="https://batsov.com/articles/2021/12/10/working-with-multiple-versions-of-java-on-ubuntu/#fnref:1">↩</a></p>
</li>
</ol>
</div>