{"id":291,"date":"2024-02-12T20:34:12","date_gmt":"2024-02-13T01:34:12","guid":{"rendered":"https:\/\/keishoseiho.com\/?p=291"},"modified":"2024-11-07T12:56:52","modified_gmt":"2024-11-07T17:56:52","slug":"java-study-room","status":"publish","type":"post","link":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/","title":{"rendered":"Java Study Room"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Pseudo login-signup Java toy<\/p>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/drive.google.com\/file\/d\/1dciGTcO-fatzX8LPDnEM7fYDdTCA0Ynd\/view?usp=drive_link\" target=\"_blank\" rel=\"noreferrer noopener\">Download<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">I built a jar package and converted it to .exe, with jdk21(a watered-down version I deleted some parts), &#8220;CRUD&#8221; without database access. As jdk21 doesn&#8217;t separate the JRE file, the supporting jdk21 file is too big(about 180MB) to put in GitHub(limit 100MB). My file size is 210MB.<\/p>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Is it really &#8220;Write once, run anywhere&#8221; ?<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"462\" height=\"182\" src=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-13.png\" alt=\"\" class=\"wp-image-295\" srcset=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-13.png 462w, https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-13-300x118.png 300w\" sizes=\"auto, (max-width: 462px) 100vw, 462px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"677\" height=\"567\" src=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-14.png\" alt=\"\" class=\"wp-image-296\" srcset=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-14.png 677w, https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-14-300x251.png 300w, https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-14-600x503.png 600w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"717\" height=\"593\" src=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-15.png\" alt=\"\" class=\"wp-image-297\" srcset=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-15.png 717w, https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-15-300x248.png 300w, https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-15-600x496.png 600w\" sizes=\"auto, (max-width: 717px) 100vw, 717px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">JRE file extracting<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#862feb\" class=\"has-inline-color\">I tried to use jlink to separate the jre file(~80MB) from jdk21, but the jre file does not support my exe file.<br>use Windows PowerShell or Command Prompt get jre file: * Run as Administrator is necessary or Error<\/mark><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<p>cd &#8220;C:\\Program Files\\Java\\jdk-21&#8221;<br \/>\nbin\\jlink.exe &#8211;module-path jmods &#8211;add-modules java.desktop &#8211;output jre<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Before &amp; After<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"102\" height=\"361\" src=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-17.png\" alt=\"\" class=\"wp-image-302\" style=\"width:165px;height:auto\" srcset=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-17.png 102w, https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-17-85x300.png 85w\" sizes=\"auto, (max-width: 102px) 100vw, 102px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"105\" height=\"401\" src=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-19.png\" alt=\"\" class=\"wp-image-304\" style=\"width:165px;height:auto\"\/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/javaalmanac.io\/bytecode\/versions\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Class File Versions<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"333\" height=\"722\" src=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-20.png\" alt=\"\" class=\"wp-image-305\" srcset=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-20.png 333w, https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/image-20-138x300.png 138w\" sizes=\"auto, (max-width: 333px) 100vw, 333px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Each JDK Release comes with its class file version. Class files are backward compatible. But class files compiled for newer JDK releases cannot be executed and will result in an <code>UnsupportedClassVersionError<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The table lists class file versions for each JDK release. Follow the linked JDK information to find download options for a suitable JDK.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-main-primary-dark-color\">The latest version JRE I can find is Java 8, which supports class file version ~52, but can&#8217;t support a higher version, that&#8217;s why I extracted the JRE file from JDK21(Java21). I wanted a support file for my JavaFX jar file, but I didn&#8217;t find the way.<\/mark><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-main-primary-dark-color\">I gave up compression of the size and put a big part of JDK21 to support my exe (converted from JavaFX jar) file.<\/mark><\/p>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:70px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">2024\/08\/01<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/drive.google.com\/file\/d\/18BZOjLiqbJsaS0FwCG-6CFYaXGFi2KVD\/view?usp=sharing\">RedKnightClub_ver1.1 download<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Modularization was hard when I use an external library&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> <\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"334\" height=\"627\" src=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/Screenshot-2024-08-01-204436-1.png\" alt=\"\" class=\"wp-image-490\" style=\"width:314px;height:auto\" srcset=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/Screenshot-2024-08-01-204436-1.png 334w, https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/Screenshot-2024-08-01-204436-1-160x300.png 160w\" sizes=\"auto, (max-width: 334px) 100vw, 334px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"wp-block-paragraph\">I improved the way to extract the necessary file for running javafx, the size of the total was reduced to <strong>190 MB<\/strong> (20MB cut). I examined the necessary external library jar file and a bin file which I combined with the other bin file extracted by jlink.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I arranged the 4 jar file on the module path (in the mods file), and compiled\/modularization my main source file to the same module path.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then, I extracted Knight(=jre) for the main module, but the bin of JavaFX comes from an external library and this should be combine with the Knight file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>jlink -p mods --add-modules mian --output Knight<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Pseudo login-signup Java toy I built a jar package and converted it to .exe, with jdk21(a watered-down version I deleted some parts), &#8220;CRUD&#8221; without database access. As jdk21 doesn&#8217;t separate the JRE file, the supporting jdk21 file is too big(about 180MB) to put in GitHub(limit 100MB). My file size is 210MB. Is it really &#8220;Write [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":507,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-291","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"Pseudo login-signup Java toy Download I built a jar package and converted it to .exe, with jdk21(a watered-down version I deleted some parts), &quot;CRUD&quot; without database access. As jdk21 doesn&#039;t separate the JRE file, the supporting jdk21 file is too big(about 180MB) to put in GitHub(limit 100MB). My file size is 210MB. Is it really\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"keishoseiho.com\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"keishoseiho.com - Life&#039;s full of ups and downs\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Java Study Room - keishoseiho.com\" \/>\n\t\t<meta property=\"og:description\" content=\"Pseudo login-signup Java toy Download I built a jar package and converted it to .exe, with jdk21(a watered-down version I deleted some parts), &quot;CRUD&quot; without database access. As jdk21 doesn&#039;t separate the JRE file, the supporting jdk21 file is too big(about 180MB) to put in GitHub(limit 100MB). My file size is 210MB. Is it really\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/cropped-cropped-logo1.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/cropped-cropped-logo1.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-02-13T01:34:12+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-11-07T17:56:52+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Java Study Room - keishoseiho.com\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Pseudo login-signup Java toy Download I built a jar package and converted it to .exe, with jdk21(a watered-down version I deleted some parts), &quot;CRUD&quot; without database access. As jdk21 doesn&#039;t separate the JRE file, the supporting jdk21 file is too big(about 180MB) to put in GitHub(limit 100MB). My file size is 210MB. Is it really\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/cropped-cropped-logo1.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/#blogposting\",\"name\":\"Java Study Room - keishoseiho.com\",\"headline\":\"Java Study Room\",\"author\":{\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/author\\\/keishoseiho-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/keishoseiho.com\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Screenshot-2024-11-07-122547.png\",\"width\":1093,\"height\":770},\"datePublished\":\"2024-02-12T20:34:12-05:00\",\"dateModified\":\"2024-11-07T12:56:52-05:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/#webpage\"},\"articleSection\":\"Keisho's Blog\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/keishoseiho.com#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/keishoseiho.com\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/category\\\/blog\\\/#listItem\",\"name\":\"Keisho's Blog\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/category\\\/blog\\\/#listItem\",\"position\":2,\"name\":\"Keisho's Blog\",\"item\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/category\\\/blog\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/#listItem\",\"name\":\"Java Study Room\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/keishoseiho.com#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/#listItem\",\"position\":3,\"name\":\"Java Study Room\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/category\\\/blog\\\/#listItem\",\"name\":\"Keisho's Blog\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/#organization\",\"name\":\"keishoseiho.com\",\"description\":\"Life's full of ups and downs\",\"url\":\"https:\\\/\\\/keishoseiho.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/keishoseiho.com\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/cropped-cropped-logo1.png\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/#organizationLogo\",\"width\":250,\"height\":250},\"image\":{\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/author\\\/keishoseiho-com\\\/#author\",\"url\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/author\\\/keishoseiho-com\\\/\",\"name\":\"keishoseiho.com\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1115d1a69552cfdb9ceb6779e1936baf24cd2e13b4b26f3ac4f334fae67e55cd?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"keishoseiho.com\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/#webpage\",\"url\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/\",\"name\":\"Java Study Room - keishoseiho.com\",\"description\":\"Pseudo login-signup Java toy Download I built a jar package and converted it to .exe, with jdk21(a watered-down version I deleted some parts), \\\"CRUD\\\" without database access. As jdk21 doesn't separate the JRE file, the supporting jdk21 file is too big(about 180MB) to put in GitHub(limit 100MB). My file size is 210MB. Is it really\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/author\\\/keishoseiho-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/author\\\/keishoseiho-com\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/keishoseiho.com\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Screenshot-2024-11-07-122547.png\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/#mainImage\",\"width\":1093,\"height\":770},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/index.php\\\/2024\\\/02\\\/12\\\/java-study-room\\\/#mainImage\"},\"datePublished\":\"2024-02-12T20:34:12-05:00\",\"dateModified\":\"2024-11-07T12:56:52-05:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/#website\",\"url\":\"https:\\\/\\\/keishoseiho.com\\\/\",\"name\":\"keishoseiho.com\",\"description\":\"Life's full of ups and downs\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/keishoseiho.com\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Java Study Room - keishoseiho.com","description":"Pseudo login-signup Java toy Download I built a jar package and converted it to .exe, with jdk21(a watered-down version I deleted some parts), \"CRUD\" without database access. As jdk21 doesn't separate the JRE file, the supporting jdk21 file is too big(about 180MB) to put in GitHub(limit 100MB). My file size is 210MB. Is it really","canonical_url":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/#blogposting","name":"Java Study Room - keishoseiho.com","headline":"Java Study Room","author":{"@id":"https:\/\/keishoseiho.com\/index.php\/author\/keishoseiho-com\/#author"},"publisher":{"@id":"https:\/\/keishoseiho.com\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/Screenshot-2024-11-07-122547.png","width":1093,"height":770},"datePublished":"2024-02-12T20:34:12-05:00","dateModified":"2024-11-07T12:56:52-05:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/#webpage"},"isPartOf":{"@id":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/#webpage"},"articleSection":"Keisho's Blog"},{"@type":"BreadcrumbList","@id":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/keishoseiho.com#listItem","position":1,"name":"Home","item":"https:\/\/keishoseiho.com","nextItem":{"@type":"ListItem","@id":"https:\/\/keishoseiho.com\/index.php\/category\/blog\/#listItem","name":"Keisho's Blog"}},{"@type":"ListItem","@id":"https:\/\/keishoseiho.com\/index.php\/category\/blog\/#listItem","position":2,"name":"Keisho's Blog","item":"https:\/\/keishoseiho.com\/index.php\/category\/blog\/","nextItem":{"@type":"ListItem","@id":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/#listItem","name":"Java Study Room"},"previousItem":{"@type":"ListItem","@id":"https:\/\/keishoseiho.com#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/#listItem","position":3,"name":"Java Study Room","previousItem":{"@type":"ListItem","@id":"https:\/\/keishoseiho.com\/index.php\/category\/blog\/#listItem","name":"Keisho's Blog"}}]},{"@type":"Organization","@id":"https:\/\/keishoseiho.com\/#organization","name":"keishoseiho.com","description":"Life's full of ups and downs","url":"https:\/\/keishoseiho.com\/","logo":{"@type":"ImageObject","url":"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/cropped-cropped-logo1.png","@id":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/#organizationLogo","width":250,"height":250},"image":{"@id":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/keishoseiho.com\/index.php\/author\/keishoseiho-com\/#author","url":"https:\/\/keishoseiho.com\/index.php\/author\/keishoseiho-com\/","name":"keishoseiho.com","image":{"@type":"ImageObject","@id":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/1115d1a69552cfdb9ceb6779e1936baf24cd2e13b4b26f3ac4f334fae67e55cd?s=96&d=mm&r=g","width":96,"height":96,"caption":"keishoseiho.com"}},{"@type":"WebPage","@id":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/#webpage","url":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/","name":"Java Study Room - keishoseiho.com","description":"Pseudo login-signup Java toy Download I built a jar package and converted it to .exe, with jdk21(a watered-down version I deleted some parts), \"CRUD\" without database access. As jdk21 doesn't separate the JRE file, the supporting jdk21 file is too big(about 180MB) to put in GitHub(limit 100MB). My file size is 210MB. Is it really","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/keishoseiho.com\/#website"},"breadcrumb":{"@id":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/#breadcrumblist"},"author":{"@id":"https:\/\/keishoseiho.com\/index.php\/author\/keishoseiho-com\/#author"},"creator":{"@id":"https:\/\/keishoseiho.com\/index.php\/author\/keishoseiho-com\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/Screenshot-2024-11-07-122547.png","@id":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/#mainImage","width":1093,"height":770},"primaryImageOfPage":{"@id":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/#mainImage"},"datePublished":"2024-02-12T20:34:12-05:00","dateModified":"2024-11-07T12:56:52-05:00"},{"@type":"WebSite","@id":"https:\/\/keishoseiho.com\/#website","url":"https:\/\/keishoseiho.com\/","name":"keishoseiho.com","description":"Life's full of ups and downs","inLanguage":"en-US","publisher":{"@id":"https:\/\/keishoseiho.com\/#organization"}}]},"og:locale":"en_US","og:site_name":"keishoseiho.com - Life's full of ups and downs","og:type":"article","og:title":"Java Study Room - keishoseiho.com","og:description":"Pseudo login-signup Java toy Download I built a jar package and converted it to .exe, with jdk21(a watered-down version I deleted some parts), &quot;CRUD&quot; without database access. As jdk21 doesn't separate the JRE file, the supporting jdk21 file is too big(about 180MB) to put in GitHub(limit 100MB). My file size is 210MB. Is it really","og:url":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/","og:image":"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/cropped-cropped-logo1.png","og:image:secure_url":"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/cropped-cropped-logo1.png","article:published_time":"2024-02-13T01:34:12+00:00","article:modified_time":"2024-11-07T17:56:52+00:00","twitter:card":"summary_large_image","twitter:title":"Java Study Room - keishoseiho.com","twitter:description":"Pseudo login-signup Java toy Download I built a jar package and converted it to .exe, with jdk21(a watered-down version I deleted some parts), &quot;CRUD&quot; without database access. As jdk21 doesn't separate the JRE file, the supporting jdk21 file is too big(about 180MB) to put in GitHub(limit 100MB). My file size is 210MB. Is it really","twitter:image":"https:\/\/keishoseiho.com\/wp-content\/uploads\/2024\/02\/cropped-cropped-logo1.png"},"aioseo_meta_data":{"post_id":"291","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2024-02-13 01:34:12","updated":"2025-06-04 13:32:11","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/keishoseiho.com\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/keishoseiho.com\/index.php\/category\/blog\/\" title=\"Keisho&apos;s Blog\">Keisho's Blog<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tJava Study Room\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/keishoseiho.com"},{"label":"Keisho's Blog","link":"https:\/\/keishoseiho.com\/index.php\/category\/blog\/"},{"label":"Java Study Room","link":"https:\/\/keishoseiho.com\/index.php\/2024\/02\/12\/java-study-room\/"}],"_links":{"self":[{"href":"https:\/\/keishoseiho.com\/index.php\/wp-json\/wp\/v2\/posts\/291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/keishoseiho.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/keishoseiho.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/keishoseiho.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/keishoseiho.com\/index.php\/wp-json\/wp\/v2\/comments?post=291"}],"version-history":[{"count":15,"href":"https:\/\/keishoseiho.com\/index.php\/wp-json\/wp\/v2\/posts\/291\/revisions"}],"predecessor-version":[{"id":508,"href":"https:\/\/keishoseiho.com\/index.php\/wp-json\/wp\/v2\/posts\/291\/revisions\/508"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/keishoseiho.com\/index.php\/wp-json\/wp\/v2\/media\/507"}],"wp:attachment":[{"href":"https:\/\/keishoseiho.com\/index.php\/wp-json\/wp\/v2\/media?parent=291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/keishoseiho.com\/index.php\/wp-json\/wp\/v2\/categories?post=291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/keishoseiho.com\/index.php\/wp-json\/wp\/v2\/tags?post=291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}