{"id":12698,"date":"2022-10-01T14:49:42","date_gmt":"2022-10-01T09:19:42","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/"},"modified":"2022-10-01T14:49:42","modified_gmt":"2022-10-01T09:19:42","slug":"solved-order-of-classloader-in-java-during-compile-time-and-run-time","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/","title":{"rendered":"[Solved] order of classloader in java during compile time and run time"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-51111991\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"51111991\" data-parentid=\"51111255\" data-score=\"2\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>First of all, this test won&#8217;t work in Java 9 or later.  Attempting to compile the <code>String<\/code> class will give this error:<\/p>\n<pre><code>java\/lang\/String.java:1: error: package exists in another module: java.base\npackage java.lang;\n^\n<\/code><\/pre>\n<p>On Java 8, I get the behavior you see.  Assuming that the tweaked <code>String<\/code> class is in the same source tree, the <code>Main<\/code> class compiles, but it gives an exception when you try to run it.<\/p>\n<p>This appears to have been reported as <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/bugs.java.com\/bugdatabase\/view_bug.do?bug_id=4929425\">bug 4929425<\/a>.  The resolution was this was a documentation bug, and they clarified the documentation for the <code>javac<\/code> command &#8230; though maybe not enough.<\/p>\n<p>Anyhow, there is a difference, and it is a subtle one.<\/p>\n<p>The <code>java<\/code> command simply searches in the following order:<\/p>\n<ul>\n<li>bootstrap classpath<\/li>\n<li>extension directories<\/li>\n<li>classpath<\/li>\n<\/ul>\n<p>The <code>javac<\/code> command first searches the source directory.  If it finds a source file there, it looks for a corresponding class file in the same location and (if necessary) compiles or recompiles it.  If no source file is found, then it searches the classpaths for a class file as described above for <code>java<\/code>.<\/p>\n<p>Note that it takes very careful reading of the <code>javac<\/code> manual entry to tease this out.  It is easy to miss.  (<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.oracle.com\/javase\/7\/docs\/technotes\/tools\/windows\/javac.html#searching\">https:\/\/docs.oracle.com\/javase\/7\/docs\/technotes\/tools\/windows\/javac.html#searching<\/a>)<\/p>\n<p>(IMO, they could make the manual page clearer.  However, this inconsistency only makes a difference if you are attempting to override some class on the bootstrap classpath or in extension directory.  And you are doing it in the wrong way.  Basically, this is an edge case.  The problem with clearly documenting obscure edge cases is that you can end up making the documentation more confusing for the normal case.)<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">4<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved order of classloader in java during compile time and run time <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] First of all, this test won&#8217;t work in Java 9 or later. Attempting to compile the String class will give this error: java\/lang\/String.java:1: error: package exists in another module: java.base package java.lang; ^ On Java 8, I get the behavior you see. Assuming that the tweaked String class is in the same source tree, &#8230; <a title=\"[Solved] order of classloader in java during compile time and run time\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/\" aria-label=\"More on [Solved] order of classloader in java during compile time and run time\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[3453,3454,323],"class_list":["post-12698","post","type-post","status-publish","format-standard","hentry","category-solved","tag-classloader","tag-classloading","tag-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] order of classloader in java during compile time and run time - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] order of classloader in java during compile time and run time - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] First of all, this test won&#8217;t work in Java 9 or later. Attempting to compile the String class will give this error: java\/lang\/String.java:1: error: package exists in another module: java.base package java.lang; ^ On Java 8, I get the behavior you see. Assuming that the tweaked String class is in the same source tree, ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-01T09:19:42+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] order of classloader in java during compile time and run time\",\"datePublished\":\"2022-10-01T09:19:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/\"},\"wordCount\":284,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"classloader\",\"classloading\",\"java\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/\",\"name\":\"[Solved] order of classloader in java during compile time and run time - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-10-01T09:19:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] order of classloader in java during compile time and run time\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] order of classloader in java during compile time and run time - JassWeb","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:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] order of classloader in java during compile time and run time - JassWeb","og_description":"[ad_1] First of all, this test won&#8217;t work in Java 9 or later. Attempting to compile the String class will give this error: java\/lang\/String.java:1: error: package exists in another module: java.base package java.lang; ^ On Java 8, I get the behavior you see. Assuming that the tweaked String class is in the same source tree, ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/","og_site_name":"JassWeb","article_published_time":"2022-10-01T09:19:42+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] order of classloader in java during compile time and run time","datePublished":"2022-10-01T09:19:42+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/"},"wordCount":284,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["classloader","classloading","java"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/","url":"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/","name":"[Solved] order of classloader in java during compile time and run time - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-10-01T09:19:42+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-order-of-classloader-in-java-during-compile-time-and-run-time\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] order of classloader in java during compile time and run time"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/12698","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=12698"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/12698\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=12698"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=12698"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=12698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}