سؤال

هنا أتحقق من متغير البيئة classpath
daniel@daniel-laptop: ~/ps/clojure/project
/Home/Daniel/PS/Clojure/Projects/Ring-Tutorial/SRC

هنا أتحقق من ما تعتقده جافا.
Daniel@Daniel-Laptop: ~/PS/Clojure/Project
Clojure 1.1.0 user => (System/GetProperty "java.class.path")
"SRC/: فصول/:/home/daniel/.m2/stospository/lininingen/lininingen/1.1.0/lininingen-1.1.0-standalone.jar: lib/clojure-1.1.0.jar: lib/servlet-api -2.5-6.1.14. .0.jar: lib/jetty-util-6.1.14.jar: lib/clj-html-0.1.0.jar: lib/ring-jetty-adapter-0.2.0.jar: lib/jetty-6.14 .jar: lib/ring-core-0.2.0.jar: lib/commons-filepload-1.2.1.jar: lib/ring-servlet-0.2.0.jar: lib/commons-codec-1.4.jar: "

كما ترون ، فإن الإجابات مختلفة تمامًا. أنا متأكد من أنني يجب أن أكون سوء فهم حيث يجب أن أقوم بتحرير متغير ClassPath لجافا "للحصول عليه" ، باستثناء أن كل شيء وجدته يقول أن هذا يجب أن ينجح. إذن ما هو الاتفاق؟ هل تفرخ لينينينين مثالها الغريب في حالة clojure؟ هل أقوم بتحرير متغير غير ذي صلة تمامًا؟ أي مساعدة موضع تقدير كبير.

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

المحلول

$CLASSPATH هو في الواقع غير ذي صلة تماما هنا. وهو ما java-سيستخدم برنامج jvm-launcher-programme إذا لم يتم تقديم معلومات classpath لها على سطر الأوامر ؛ يزود Lininingen JVM مع classpath مناسب لأي مشروع تعمل عليه.

في هذه الحالة بالذات ، "/home/.../ring-tutorial/src" لن يكون ClassPath مفيدًا جدًا للبرنامج التعليمي الحلقي ، لأنه لا يشمل سوى مصدر Ring Tutorial ولا يتضمن جرة Clojure (وهو أمر ضروري لتشغيل رمز clojure) ، والجرار الحلقة (الحلقة هي مشروع متعدد الوحدات) أو أي من الجرار الأخرى تعتمد على. قد يبدو ClassPath الذي تنتجه Lininingen طويلًا جدًا ، لكن جميع مكوناته تحتاج حقًا إلى أن تكون هناك.

بالمناسبة ، إذا كنت قد بدأت للتو مع Clojure ، فإنني أوصيك بالالتزام بمرافق إدارة ClassPath الخاصة بتشكيل أدواتك (قد يعني ذلك emacs + lein swank أو بعض IDE + المكون الإضافي Clojure) إذا كان ذلك ممكنًا. خلاف ذلك ، هناك الكثير من الأسئلة حول مشكلات Clojure Classpath هنا على ذلك ، بالإضافة إلى العديد من الموارد الأخرى حول الموضوع الذي يمكنك Google لـ ... ولكن الآن هذا دعم الأداة قوي للغاية ولا تقم عادةً بحاجة إلى للمس Classpath باليد ، من الأفضل تجنب الألم في البداية.

نصائح أخرى

المشكلة في استخدام متغير ClassPath لإدارة تبعياتك هي أن جميع لغات Java ولغات JVM الأخرى ستحتاج إلى معالجة ذلك لأغراضها. لا يستغرق الأمر وقتًا طويلاً قبل أن ترسم نفسك في الزاوية.

إنه نوع من يعمل عند بدء تشغيل خادم يقوم فقط بتشغيل خادم. إنه ينهار تمامًا على جهاز كمبيوتر لمطور Java ، الذي لديه 10 برامج ومشاريع تحتاج إلى تبعيات مختلفة ، ثم يقضي المزيد من الوقت في نصوص باش للمعالجة المتغير ClassPath الذي كتابة رمز المصدر.

وبالتالي ، فإن هذه الطريقة لإدارة classpath قد تم إهمالها ، وفضل تقنيات التحميل الأخرى ، أو عند استخدام ClassPath ، فقط باستخدامه محليًا للغاية.

Clojure Classpath هو Java Classpath.

$CLASSPATH يتم تجاهله عند java يتم الاحتجاج القابل للتنفيذ مع -cp الحجة ، التي يفعلها Lininingen (ومعظم البرامج النصية الأخرى لبناء clojure).

إذا كنت تستخدم أداة بناء مثل Lininingen ، فيجب عليك استخدامها لإدارة ClassPath.

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