मेरी निर्देशिका संरचना इस तरह दिखती है।जेवीएम मेरी कक्षा नहीं ढूंढ सकता: java.lang.NoClassDefFoundError
PackagesUnit3/com/myname/शुरू/PackagesTest.java
(इस वर्ग के अपने मुख्य और आयात बयान "आयात com.systems.mui शामिल *;।)
PackagesUnit3/com/सिस्टम /mui/Test.java
(इस वर्ग पैकेज बयान "पैकेज com.systems.mui," शामिल हैं)
मेरी आधार निर्देशिका के रूप में मैं बयान के साथ सफलतापूर्वक दोनों वर्गों संकलन कर सकते हैं
"javac com/myname/start/PackagesTest.java"
हालांकि मैं आदेश
"java com.myname.start.PackagesTest"
Error: "Exception in thread "main" java.lang.NoClassDefFoundError: com/myname/start/PackagesTest (wrong name: PackagesTest)"
संकलक सफलतापूर्वक जावा कक्षाएं से प्रत्येक के लिए .class
फ़ाइलें उत्पन्न होते हैं और उन्हें स्रोत फ़ाइलों के रूप में ही स्थान में रखा के साथ कोड नहीं चल सकता।
होरस्टमान के अनुसार, "कोर जावा" 9वीं संस्करण। पी। 186, मेरा "जावा" कमांड सिंटैक्स काम करना चाहिए।
मुझे वर्तमान निर्देशिका ("।") निर्दिष्ट नहीं करना चाहिए क्योंकि मैं क्लासपाथ (-सीपी) विकल्प का उपयोग नहीं कर रहा हूं।
एक नोट: मैंने "SUBST R:" का उपयोग बेस निर्देशिका के रूप में PackagesUnit3 निर्देशिका को स्थापित करने के लिए किया था। मेरी वास्तविक कमांड लाइन की तरह दिखती है:>
कोई सुझाव ??
+1 क्योंकि आपके प्रश्न शीर्षक ने मुझे हंस दिया। :) –
'जावा com.myname.start.Packages.test' - क्या यह एक टाइपो है? क्योंकि आपका वर्ग का नाम 'पैकेजेजटेस्ट' है। –
मेरा सुझाव है कि आप अपनी कमांड लाइन को ठीक करें। यदि आपके पैकेजेजटेस्ट क्लास में मुख्य() विधि है, तो आपकी कमांड लाइन जावा com.myname.start.PackagesTest होना चाहिए। – Olaf