{"id":31857,"date":"2023-01-25T03:51:46","date_gmt":"2023-01-24T22:21:46","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/"},"modified":"2023-01-25T03:51:46","modified_gmt":"2023-01-24T22:21:46","slug":"solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/","title":{"rendered":"[Solved] DrJava tells me there&#8217;s no main, but main is defined within the class declaration"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-46040295\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"46040295\" data-parentid=\"46040201\" data-score=\"3\" 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>That code runs just fine with the <code>java<\/code> command-line tool: <code>java canine<\/code><\/p>\n<p>When you do <code>java canine<\/code>, you&#8217;ll telling the <code>java<\/code> tool to find and load the <code>canine<\/code> class and run its <code>main<\/code> method.<\/p>\n<p>If you were using <code>java Animal<\/code>, the issue is that <code>Animal<\/code> has no <code>main<\/code>. <code>canine<\/code> does.<\/p>\n<blockquote>\n<p>Clearly, class canine is -in my mind at least, a child of class Animal<\/p>\n<\/blockquote>\n<p>No, there is no relationship between <code>canine<\/code> and <code>Animal<\/code> other than that <code>canine<\/code> uses <code>Animal<\/code> in its <code>main<\/code>. E.g., <code>canine<\/code> <em>depends<\/em> on <code>Animal<\/code> but isn&#8217;t otherwise related to it. If you wanted it to be a subclass (one fairly reasonable interpretation of &#8220;child class&#8221;), you&#8217;d add <code>extends Animal<\/code> to its declaration. If you wanted it to be a <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.oracle.com\/javase\/tutorial\/java\/javaOO\/nested.html\">nested class<\/a> (another fairly reasonable interpretation of &#8220;child class&#8221;), you&#8217;d put it <em>inside<\/em> <code>Animal<\/code>.<\/p>\n<p>From your comment:<\/p>\n<blockquote>\n<p>But I still don&#8217;t understand why DrJava is telling me that it doesn&#8217;t have a static void main method accepting String[]. Also, It&#8217;s not printing anything, when I run on DrJava.<\/p>\n<\/blockquote>\n<p>I expect you&#8217;re confusing DrJava by putting <code>canine<\/code> in the same file as <code>Animal<\/code>, making <code>Animal<\/code> public, and then expecting DrJava to figure out that it should run <code>canine.main<\/code> rather than <code>Animal.main<\/code>. See the notes below about best practices.<\/p>\n<p>From another comment:<\/p>\n<blockquote>\n<p>but doesn&#8217;t <code>dog.bark()<\/code> directly call the function in <code>Animal<\/code>? Why do I need to &#8220;extend&#8221; in this scenario?<\/p>\n<\/blockquote>\n<p>You don&#8217;t. A class can use another class without there being any inheritance relationship between them, as your code does. It was your use of the term &#8220;child class&#8221; in the comments that suggested you&#8217;d intended inheritance or similar.<\/p>\n<hr>\n<p>Side note: While you don&#8217;t have to follow them, following standard Java naming conventions is good practice. Class names should be initially-capped and CamelCase. So <code>Canine<\/code> rather than <code>canine<\/code>.<\/p>\n<p>Side note 2: As Hovercraft Full Of Eels says, it&#8217;s best to put each class in its own <code>.java<\/code> file, named by the name of the class. Technically, you can put non-public classes in any <code>.java<\/code> file (which is why that code works with <code>canine<\/code> in <code>Animal.java<\/code>), but in general, again, best practice is to separate them. So you&#8217;d have <code>Animal.java<\/code> containing the <code>Animal<\/code> class, and <code>canine.java<\/code> containing the <code>canine<\/code> class (or better, <code>Canine.java<\/code> containing the <code>Canine<\/code> class).<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">3<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved DrJava tells me there&#8217;s no main, but main is defined within the class declaration <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] That code runs just fine with the java command-line tool: java canine When you do java canine, you&#8217;ll telling the java tool to find and load the canine class and run its main method. If you were using java Animal, the issue is that Animal has no main. canine does. Clearly, class canine is &#8230; <a title=\"[Solved] DrJava tells me there&#8217;s no main, but main is defined within the class declaration\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/\" aria-label=\"More on [Solved] DrJava tells me there&#8217;s no main, but main is defined within the class declaration\">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":[5870,323],"class_list":["post-31857","post","type-post","status-publish","format-standard","hentry","category-solved","tag-drjava","tag-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>[Solved] DrJava tells me there&#039;s no main, but main is defined within the class declaration - 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-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] DrJava tells me there&#039;s no main, but main is defined within the class declaration - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] That code runs just fine with the java command-line tool: java canine When you do java canine, you&#8217;ll telling the java tool to find and load the canine class and run its main method. If you were using java Animal, the issue is that Animal has no main. canine does. Clearly, class canine is ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-24T22:21:46+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=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\\\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] DrJava tells me there&#8217;s no main, but main is defined within the class declaration\",\"datePublished\":\"2023-01-24T22:21:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\\\/\"},\"wordCount\":382,\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"keywords\":[\"drjava\",\"java\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\\\/\",\"name\":\"[Solved] DrJava tells me there's no main, but main is defined within the class declaration - JassWeb\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\"},\"datePublished\":\"2023-01-24T22:21:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] DrJava tells me there&#8217;s no main, but main is defined within the class declaration\"}]},{\"@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\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\\\/\\\/jassweb.com\"],\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/author\\\/jaspritsinghghumangmail-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] DrJava tells me there's no main, but main is defined within the class declaration - 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-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] DrJava tells me there's no main, but main is defined within the class declaration - JassWeb","og_description":"[ad_1] That code runs just fine with the java command-line tool: java canine When you do java canine, you&#8217;ll telling the java tool to find and load the canine class and run its main method. If you were using java Animal, the issue is that Animal has no main. canine does. Clearly, class canine is ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/","og_site_name":"JassWeb","article_published_time":"2023-01-24T22:21:46+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] DrJava tells me there&#8217;s no main, but main is defined within the class declaration","datePublished":"2023-01-24T22:21:46+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/"},"wordCount":382,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["drjava","java"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/","url":"https:\/\/jassweb.com\/solved\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/","name":"[Solved] DrJava tells me there's no main, but main is defined within the class declaration - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2023-01-24T22:21:46+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-drjava-tells-me-theres-no-main-but-main-is-defined-within-the-class-declaration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] DrJava tells me there&#8217;s no main, but main is defined within the class declaration"}]},{"@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\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","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\/31857","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=31857"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/31857\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=31857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=31857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=31857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}