{"id":8624,"date":"2018-02-10T12:00:04","date_gmt":"2018-02-10T11:00:04","guid":{"rendered":"https:\/\/developer-blog.net\/?p=8624"},"modified":"2018-02-08T10:44:35","modified_gmt":"2018-02-08T09:44:35","slug":"java-version-downgrade","status":"publish","type":"post","link":"https:\/\/developer-blog.net\/java-version-downgrade\/","title":{"rendered":"Java Version Downgrade"},"content":{"rendered":"<p>Ich zeige euch wie man f\u00fcr die installierte <strong>Java Version<\/strong> ein <strong>Downgrade<\/strong> machen kann. Das ist manchmal n\u00f6tig, will man \u00e4ltere Java Software kompilieren. Au\u00dferdem gibt es immer wieder Anwendungen, die nur f\u00fcr eine bestimmte Java Version kompatibel sind (was eigentlich nicht sein soll&#8230;.). Unter Linux ist das recht einfach m\u00f6glich.<\/p>\n<h2>Java Version Downgrade<\/h2>\n<p>Will man eine Software neu kompilieren (beispielsweise um eine kleine \u00c4nderung zu machen), dann l\u00e4uft man schnell in das Problem, dass die aktuell installierte <strong>J<\/strong>ava <strong>V<\/strong>irtual <strong>M<\/strong>achine (JVM) eine h\u00f6here Versionsnummer besitzt und man deshalb den Code nicht kompilieren kann (meist geht es trotzdem, wenn man die verwendeten Bibliotheken aktualisiert). Um nicht unseren kompletten Source Code umzubauen, kann man tempor\u00e4r die JVM \u00e4ndern. Bei jeder Installation wird die alte Version behalten.<\/p>\n<h3>\u00dcbersicht<\/h3>\n<p>\u00dcber den Paketmanager sollte Linux immer automatisch die aktuelle Java Version installieren. Falls man unter Windows unterwegs ist oder direkt eine bestimmte Version ben\u00f6tigt, dann kann man diese auch von der <a title=\"Java Versionen\" href=\"http:\/\/www.oracle.com\/technetwork\/java\/javase\/downloads\/index.html\" target=\"_blank\" rel=\"noopener\">offiziellen Java Seite<\/a> bei Oracle herunterladen. Das Kommando<\/p>\n<pre class=\"\">java -version<\/pre>\n<p>gibt uns Auskunft \u00fcber die aktuell installierte und verwendete Java Runtime Environment. In meinem Fall ist das aktuell 9.0.1. \u00dcber das Programm<strong> update-alternatives<\/strong> l\u00e4sst sich das nun recht komfortabel \u00fcber die Konsole \u00e4ndern. Mit dem Kommando:<\/p>\n<pre>sudo update-alternatives --config java<\/pre>\n<p>sehen wir eine \u00dcbersicht aller installierten Java Runtimes. Wie ihr anhand des Screenshots sehen k\u00f6nnt habe ich die Versionen 7, 8 und 9 installiert, wobei f\u00fcr 8 und 9 jeweils die JVM von Oracle und die Open Source Alternative von OpenJDK installiert sind. \u00dcber die Abfrage mit der Eingabe der Zeilennummer k\u00f6nnen wir die aktuell verwendete JVM nun \u00e4ndern.<\/p>\n<p><a href=\"https:\/\/developer-blog.net\/?attachment_id=8682\" rel=\"attachment wp-att-8682\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8682\" src=\"https:\/\/developer-blog.net\/wp-content\/uploads\/2018\/01\/java-version-downgrade.png\" alt=\"Java Version downgrade\" width=\"852\" height=\"327\" srcset=\"https:\/\/developer-blog.net\/wp-content\/uploads\/2018\/01\/java-version-downgrade.png 852w, https:\/\/developer-blog.net\/wp-content\/uploads\/2018\/01\/java-version-downgrade-300x115.png 300w\" sizes=\"auto, (max-width: 852px) 100vw, 852px\" \/><\/a><\/p>\n<p>Wenn man nun ein Java Programm startet kann man unter Umst\u00e4nden bereits die \u00c4nderung erkennen. Eventuell funktioniert ein aktuelleres Programm nun mit einer \u00e4lteren JVM nicht mehr. \u00c4ltere Programme profitieren eventuell von einer aktuelleren JVM. Kompilieren wir nun unser Zielprogramm erneut, dann werden wir feststellen, dass die \u00c4nderung noch keine Wirkung zeigt.<\/p>\n<h3>Entwicklungsumgebung<\/h3>\n<p>Damit wir beim Kompilieren auch die gew\u00fcnschte Java Version verwenden m\u00fcssen wir den Pfad der <strong>JAVA_HOME<\/strong> Variable anpassen. Das Beispiel zeigt, dass diese aktuell noch auf die Version 9 zeigt und sehr einfach auf den anderen Ordner ge\u00e4ndert werden kann:<\/p>\n<pre class=\"\">werner@Tuxedo:~$ echo $JAVA_HOME\r\n\/usr\/lib\/jvm\/java-9-oracle\r\nwerner@Tuxedo:~$ export JAVA_HOME=\/usr\/lib\/jvm\/java-8-oracle\/jre<\/pre>\n<p>Nun sollte das Kompilieren mit der alten Java Version auch kein Problem mehr sein.<\/p>\n<h2>Fazit<\/h2>\n<p>Hin und wieder muss ein Entwickler ein Java Version Downgrade machen. Unter Linux ist das recht einfach m\u00f6glich, es gibt Tools mit denen man die aktuell verwendete JVM ver\u00e4ndern kann. Weiters ist es recht einfach die JAVA_HOME Variable auf einen neuen Pfad zeigen zu lassen. Damit sollte jeder Java Entwickler auch mehrere Jahre alten Code neu kompilieren k\u00f6nnen ohne das komplette Projekt samt aller Bibliotheken updaten zu m\u00fcssen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich zeige euch wie man f\u00fcr die installierte Java Version ein Downgrade machen kann. Das ist manchmal n\u00f6tig, will man \u00e4ltere Java Software kompilieren. Au\u00dferdem gibt es immer wieder Anwendungen, die nur f\u00fcr eine&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":8682,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[561,564],"class_list":["post-8624","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","tag-java","tag-linux"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Java Version Downgrade - Developer-Blog<\/title>\n<meta name=\"description\" content=\"In diesem Beitrag machen wir ein Java Version Downgrade um alte Software neu kompilieren zu k\u00f6nnen. Das ist unter Linux recht einfach und in zwei Schritten durchf\u00fchrbar.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/developer-blog.net\/java-version-downgrade\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java Version Downgrade - Developer-Blog\" \/>\n<meta property=\"og:description\" content=\"In diesem Beitrag machen wir ein Java Version Downgrade um alte Software neu kompilieren zu k\u00f6nnen. Das ist unter Linux recht einfach und in zwei Schritten durchf\u00fchrbar.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer-blog.net\/java-version-downgrade\/\" \/>\n<meta property=\"og:site_name\" content=\"Developer-Blog\" \/>\n<meta property=\"article:author\" content=\"Developer-Blog\/536949113033287\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-10T11:00:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/developer-blog.net\/wp-content\/uploads\/2018\/01\/java-version-downgrade.png\" \/>\n\t<meta property=\"og:image:width\" content=\"852\" \/>\n\t<meta property=\"og:image:height\" content=\"327\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Werner Ziegelwanger\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Werner Ziegelwanger\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"2\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/java-version-downgrade\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/java-version-downgrade\\\/\"},\"author\":{\"name\":\"Werner Ziegelwanger\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/#\\\/schema\\\/person\\\/b6f55a78f44b02d24b974d504a770f41\"},\"headline\":\"Java Version Downgrade\",\"datePublished\":\"2018-02-10T11:00:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/java-version-downgrade\\\/\"},\"wordCount\":455,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/java-version-downgrade\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/developer-blog.net\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/java-version-downgrade.png\",\"keywords\":[\"Java\",\"Linux\"],\"articleSection\":[\"Java\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/developer-blog.net\\\/java-version-downgrade\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/java-version-downgrade\\\/\",\"url\":\"https:\\\/\\\/developer-blog.net\\\/java-version-downgrade\\\/\",\"name\":\"Java Version Downgrade - Developer-Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/java-version-downgrade\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/java-version-downgrade\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/developer-blog.net\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/java-version-downgrade.png\",\"datePublished\":\"2018-02-10T11:00:04+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/#\\\/schema\\\/person\\\/b6f55a78f44b02d24b974d504a770f41\"},\"description\":\"In diesem Beitrag machen wir ein Java Version Downgrade um alte Software neu kompilieren zu k\u00f6nnen. Das ist unter Linux recht einfach und in zwei Schritten durchf\u00fchrbar.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/java-version-downgrade\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/developer-blog.net\\\/java-version-downgrade\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/java-version-downgrade\\\/#primaryimage\",\"url\":\"https:\\\/\\\/developer-blog.net\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/java-version-downgrade.png\",\"contentUrl\":\"https:\\\/\\\/developer-blog.net\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/java-version-downgrade.png\",\"width\":852,\"height\":327,\"caption\":\"Java Version downgrade\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/java-version-downgrade\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/developer-blog.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java Version Downgrade\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/#website\",\"url\":\"https:\\\/\\\/developer-blog.net\\\/\",\"name\":\"Developer-Blog\",\"description\":\"Webdesign, Administration, Raspberry Pi, Open Source.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/developer-blog.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/#\\\/schema\\\/person\\\/b6f55a78f44b02d24b974d504a770f41\",\"name\":\"Werner Ziegelwanger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eff0ce687362c771b5d999f18ba69d981981d432d1284d3dce3f2ba303e98c3a?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eff0ce687362c771b5d999f18ba69d981981d432d1284d3dce3f2ba303e98c3a?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eff0ce687362c771b5d999f18ba69d981981d432d1284d3dce3f2ba303e98c3a?s=96&d=retro&r=g\",\"caption\":\"Werner Ziegelwanger\"},\"description\":\"Google+\",\"sameAs\":[\"Developer-Blog\\\/536949113033287\",\"https:\\\/\\\/x.com\\\/DevBlogNet\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Java Version Downgrade - Developer-Blog","description":"In diesem Beitrag machen wir ein Java Version Downgrade um alte Software neu kompilieren zu k\u00f6nnen. Das ist unter Linux recht einfach und in zwei Schritten durchf\u00fchrbar.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/developer-blog.net\/java-version-downgrade\/","og_locale":"de_DE","og_type":"article","og_title":"Java Version Downgrade - Developer-Blog","og_description":"In diesem Beitrag machen wir ein Java Version Downgrade um alte Software neu kompilieren zu k\u00f6nnen. Das ist unter Linux recht einfach und in zwei Schritten durchf\u00fchrbar.","og_url":"https:\/\/developer-blog.net\/java-version-downgrade\/","og_site_name":"Developer-Blog","article_author":"Developer-Blog\/536949113033287","article_published_time":"2018-02-10T11:00:04+00:00","og_image":[{"width":852,"height":327,"url":"https:\/\/developer-blog.net\/wp-content\/uploads\/2018\/01\/java-version-downgrade.png","type":"image\/png"}],"author":"Werner Ziegelwanger","twitter_misc":{"Verfasst von":"Werner Ziegelwanger","Gesch\u00e4tzte Lesezeit":"2\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/developer-blog.net\/java-version-downgrade\/#article","isPartOf":{"@id":"https:\/\/developer-blog.net\/java-version-downgrade\/"},"author":{"name":"Werner Ziegelwanger","@id":"https:\/\/developer-blog.net\/#\/schema\/person\/b6f55a78f44b02d24b974d504a770f41"},"headline":"Java Version Downgrade","datePublished":"2018-02-10T11:00:04+00:00","mainEntityOfPage":{"@id":"https:\/\/developer-blog.net\/java-version-downgrade\/"},"wordCount":455,"commentCount":0,"image":{"@id":"https:\/\/developer-blog.net\/java-version-downgrade\/#primaryimage"},"thumbnailUrl":"https:\/\/developer-blog.net\/wp-content\/uploads\/2018\/01\/java-version-downgrade.png","keywords":["Java","Linux"],"articleSection":["Java"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/developer-blog.net\/java-version-downgrade\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/developer-blog.net\/java-version-downgrade\/","url":"https:\/\/developer-blog.net\/java-version-downgrade\/","name":"Java Version Downgrade - Developer-Blog","isPartOf":{"@id":"https:\/\/developer-blog.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/developer-blog.net\/java-version-downgrade\/#primaryimage"},"image":{"@id":"https:\/\/developer-blog.net\/java-version-downgrade\/#primaryimage"},"thumbnailUrl":"https:\/\/developer-blog.net\/wp-content\/uploads\/2018\/01\/java-version-downgrade.png","datePublished":"2018-02-10T11:00:04+00:00","author":{"@id":"https:\/\/developer-blog.net\/#\/schema\/person\/b6f55a78f44b02d24b974d504a770f41"},"description":"In diesem Beitrag machen wir ein Java Version Downgrade um alte Software neu kompilieren zu k\u00f6nnen. Das ist unter Linux recht einfach und in zwei Schritten durchf\u00fchrbar.","breadcrumb":{"@id":"https:\/\/developer-blog.net\/java-version-downgrade\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer-blog.net\/java-version-downgrade\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/developer-blog.net\/java-version-downgrade\/#primaryimage","url":"https:\/\/developer-blog.net\/wp-content\/uploads\/2018\/01\/java-version-downgrade.png","contentUrl":"https:\/\/developer-blog.net\/wp-content\/uploads\/2018\/01\/java-version-downgrade.png","width":852,"height":327,"caption":"Java Version downgrade"},{"@type":"BreadcrumbList","@id":"https:\/\/developer-blog.net\/java-version-downgrade\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/developer-blog.net\/"},{"@type":"ListItem","position":2,"name":"Java Version Downgrade"}]},{"@type":"WebSite","@id":"https:\/\/developer-blog.net\/#website","url":"https:\/\/developer-blog.net\/","name":"Developer-Blog","description":"Webdesign, Administration, Raspberry Pi, Open Source.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/developer-blog.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/developer-blog.net\/#\/schema\/person\/b6f55a78f44b02d24b974d504a770f41","name":"Werner Ziegelwanger","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/eff0ce687362c771b5d999f18ba69d981981d432d1284d3dce3f2ba303e98c3a?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/eff0ce687362c771b5d999f18ba69d981981d432d1284d3dce3f2ba303e98c3a?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eff0ce687362c771b5d999f18ba69d981981d432d1284d3dce3f2ba303e98c3a?s=96&d=retro&r=g","caption":"Werner Ziegelwanger"},"description":"Google+","sameAs":["Developer-Blog\/536949113033287","https:\/\/x.com\/DevBlogNet"]}]}},"_links":{"self":[{"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/posts\/8624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/comments?post=8624"}],"version-history":[{"count":7,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/posts\/8624\/revisions"}],"predecessor-version":[{"id":8687,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/posts\/8624\/revisions\/8687"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/media\/8682"}],"wp:attachment":[{"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/media?parent=8624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/categories?post=8624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/tags?post=8624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}