سؤال

أحاول استخدام javac مع موجه أوامر Windows، لكنه لا يعمل.

بعد إضافة الدليل "C:\Program Files\Java\jdk1.6.0_16\bin\" حتى نهاية PATH متغير البيئة، java الأمر يعمل بشكل جيد، ولكن باستخدام javac يعطيني الخطأ التالي:

"Javac" غير معروف كأمر داخلي أو خارجي أو برنامج قابل للتشغيل أو ملف دفعي.

هل كانت مفيدة؟

المحلول

إذا أضفته في لوحة التحكم أثناء فتح موجه الأوامر، فلن يؤثر ذلك على موجه الأمر الحالي. ستحتاج إلى الخروج وإعادة فتحها أو القيام به ببساطة:

set "path=%path%;c:\program files\java\jdk1.6.0_16\bin"

عن طريق التحقق، تنفيذ:

echo %path%

من موجه الأمر الخاص بك واسمحوا لنا أن نعرف ما هو عليه.

خلاف ذلك، تأكد من هناك يكون جافاك في هذا الدليل من خلال محاولة:

"c:\program files\java\jdk1.6.0_16\bin\javac.exe"

من موجه الأوامر. يمكنك أيضا معرفة أي يمكن استخدامه قابل للتنفيذ (إن وجد) مع الأمر:

for %i in (javac.exe) do @echo %~$PATH:i

هذه خدعة أنيقة مماثلة ل which و / أو whence أوامر في بعض أنظمة التشغيل من نوع UNIX.

نصائح أخرى

يبحث Windows OS على الدليل الحالي والدلائل المدرجة في متغير بيئة المسار للبرامج القابلة للتنفيذ. برامج JDK (مثل Java Compiler Javac.exe و Java Runtime Java.exe) موجودة في الدليل " Bin" (حيث يدل على دليل JDK المثبت، على سبيل المثال، C: Program Files Java JDK1.8.0_XX). تحتاج إلى تضمين دليل " bin" في المسار.

لتحرير متغير بيئة المسار في نظام التشغيل Windows XP / Vista / 7/8:

  1. لوحة التحكم ⇒ النظام ⇒ إعدادات النظام المتقدمة

  2. التبديل إلى علامة التبويب "المتقدمة" ⇒ متغيرات البيئة

  3. في "متغيرات النظام"، قم بالتمرير لأسفل لتحديد "المسار" ⇒ Edit

((الآن قراءة 3 مرات التالية قبل المتابعة، لا يوجد التراجع ))

في حقل "قيمة متغيرة القيمة"، أدخل "C: Program Files Java JDK1.8.0_XX BIN" (استبدل XX برقم الترقية وتحقق من أن هذا هو الدليل الثنائي في JDK !!!) أمام جميع الموجودة الدلائل، تليها نصف القولون (؛) والتي تفصل الدليل الثنائي JDK من بقية الدلائل الموجودة. لا تحذف أي إدخالات حالية؛ خلاف ذلك، قد لا تعمل بعض التطبيقات الموجودة.

Variable name  : PATH
Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[existing entries...]

Screenshot

بعد جوجل طويلة، تعرفت على أن Javac.exe سيكون في الداخل jdk(C: Program Files Java JDK (رقم الإصدار) Bin) ليس في الداخل جري (C: ملفات البرنامج (x86) java jre7 bin) "جري لا يأتي مع مترجم. (JRE) هو ببساطة بيئة وقت تشغيل Java. ما تحتاجه هو مجموعة تطوير Java." من أجل استخدام مترجم Javac

لن تعمل Javac إذا كنت تشير بن داخل جري

من أجل استخدام Javac في CMD، يجب تثبيت JDK في نظامك ...

لمسار Javac.

المسار = C: ملفات البرنامج (x86) java jre7 bin هذا خطأ

المسار = C: Program Files Java JDK (رقم الإصدار) Bin هذا صحيح

تأكد من أن "javac.exe" هو داخل "C: Program Files Java JDK (رقم الإصدار) Bin"

لا تشعر بالارتباك مع JRE و JDK كلاهما مختلف تماما

إذا لم يكن لديك JDK الرجاء تنزيل من هذا الرابط http://www.oracle.com/technetwork/java/javase/downloads/index.html.

مؤشر الترابط ل JDK VS JRE ما هو الفرق بين JDK و JRE؟

أعلم أن هذا قد لا يكون خطأك المحدد، لكني كان لدي فترة رائدة في طريقي وسيعمل جافا ولكن Javac لن.

لما يستحق، أقدم نصيحة حكيم: "فحص طريقك عن كثب".

جرب الحلول هنا: http://techdem.centerkey.com/2009/05/javahome-command-script.html.

هذه أكثر قوة أكثر قوة للتغيير - مثل عند ترقية JDK أو JRE، لأنه لا يوجد مسار مشفرة بجد.

الحل السريع (إذا كنت لا ترغب في قراءة المدونة) هو

C:\>for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i
C:\>set PATH=%PATH%;%JAVA_HOME%

يمكنك بعد ذلك إضافة هذه الخطوط إلى برنامج نصي بدء التشغيل / تسجيل الدخول.

اضطررت للتو في القيام بذلك للحصول على هذا للعمل على Windows 7 64.

افتح موجه الأوامر (cmd.exe) واكتب:

set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin

تأكد من إعادة فتح جميع نوافذ موجه الأوامر قيد التشغيل للحصول على متغير البيئة المحدثة أيضا.

حسنا، لا يمكن أن يكون هذا هو الحال دائما، لكن الكثير منا قد فعل هذا الخطأ في الماضي وعدد قليل من هؤلاء لا يدركون ذلك، وهو، في كل مرة تقوم بإلحاق مسار (أي مسار) لأي متغير بيئة، أنت من المحتمل أن تصل إلى شريط الفضاء مباشرة بعد "الفاصلة المنقوطة" (كما تفعل عادة، بعد "الفترة" أثناء الكتابة في محرر).

سيؤدي ذلك إلى إنشاء مساحة رائدة في المسار على سبيل المثال "C: Program Files Java JDK1.6.0 Bin"، وبالتالي "لن يتم العثور على" javac.exe "بواسطة النظام.

تغيير المجلد "jdk1.7.0_45" "jdk1_7_0_60" jdk1_7_0_60 "وتحديث المسار في بيئة Windows. خلاف ذلك، يتجاهل المسار النقطة الموجودة في الجبهة التي تقف إلى ملف مخفي ولذا لا يتم عرض المجلد في سلاسل المسار.

"؛ c: program files java jdk1.6.0 bin" في وقت ما قد تنسى وضع الفاصلة المنقوطة في آخر مسار موجود.

واجهت نفس المشكلة بالضبط أن جافا ستعمل ولكن Javac لن يكون موجودا في نظام التشغيل CMD في نظام التشغيل Windows 8.

حدثت المشكلة لأنني نسيت إزالة '>' في نهاية اسم المسار، أي، كان مثل هذا:

C:\Program Files\Java\jdk*\bin>

حيث من المفترض أن تكون مثل هذا:

C:\Program Files\Java\jdk*\bin

سيتم تعيين المسار فقط لحساب المسؤول. لذلك من المهم إطلاق موجه الأوامر كمسؤول، إذا لم تكن بالفعل.

تأكد من عدم السماح بمسافات (مساحة بيضاء) بين المسارات في متغير المسار. كانت مشكلتي كان لدي مساحة بيضاء وأعتقد أن النوافذ تعاملها كغامة ولم تقرأ طريقي في جافا.

كنت أواجه نفس المشكلة المنشورة في هذا العنوان. جافا ستعمل، ولكن javac لن في موجه أوامر Windows (cmd.exe).

بالنسبة لي، كان الأمر ببساطة أنني وضعت مساحة عند إضافة C:\Program Files\Java\jdk1.8.0\bin إلى نهاية بلدي %PATH% متغيرات البيئة.
إزالة المسافة بين ; ومسار الملف التالي.

وأنا أقدر أن هذا سؤال قديم الآن ولكن الحل لم يكن إجابة هنا حتى نشرها في حالة تحاول أي شخص آخر كل الباقي.

في حالتي، كان تثبيت سابق ل Java Jre (في ProgramData / Oracle / Java) متغير مسار في أعلى قائمة متغيرات المسار. كان محتويات هذا المسار "Oracle" java.exe ولكن ليس javac.exe. أضفت مسار JDK الخاص بي الكامل إلى أعلى قائمة متغيرات المسار، قبل "Oracle" One، ثم التقط Javac.exe وكذلك جافا.

for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i
set JAVA_HOME

هذه حل الحل لي

عندما حاولت جعل .java to. class the command javac لم يعمل. حصلت عليه من خلال الذهاب إلى C: ملفات البرنامج (x86) java jdk1.7.04 java jdk1.7.04 bin وعندما كنت في هذا الدليل كتبت javac.exe c test test.java وجعل الفصل مع ذلك تكتيك. جرب ذلك.

اعطيه ك "C: Program Files Java JDK1.6.0_16 BIN". إزالة الخلفية سوف تعمل

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top