جافا" كلاسنوتفوندكسيبتيون " خطأ
-
11-12-2019 - |
سؤال
أنا جديد على برمجة جافا وأنا الحصول على خطأ "كلاسنوتفوندكسيبتيون" خطأ كثيرا.
الشيء الغريب هو أنه يجمع بشكل جيد:
java -cp /usr/share/java/scribe-1.3.0.jar FacebookProg
ولكن عندما أحاول تشغيله ، أحصل على الخطأ التالي:
steve@steve-ThinkPad-T61:~/facebook$ java FacebookProg
Exception in thread "main" java.lang.NoClassDefFoundError:
org/scribe/builder/ServiceBuilder
at FacebookProg.main(FacebookProg.java:8)
Caused by: java.lang.ClassNotFoundException: org.scribe.builder.ServiceBuilder
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 1 more
راجعت على الانترنت ويبدو أن جافا لا يمكن العثور على المكتبة في وقت التشغيل أنه كان قادرا على العثور في وقت الترجمة.لذلك حاول الاختلافات التالية:
java -cp /usr/share/java/scribe-1.3.0.jar FacebookProg
java -cp /usr/share/java/ FacebookProg
export CLASSPATH="/usr/share/java"; java FacebookProf
export CLASSPATH="/usr/share/java/usr/share/java/scribe-1.3.0.jar"; java FacebookProg
راجعت عدة أماكن على ستاكوفيرفلو وجوجل وما زلت لا أستطيع معرفة السبب.أنا جديد على جافا ، لذلك ربما يكون هناك حل بسيط ، ولكن لا أستطيع العثور عليه.أنا باستخدام الشمس جافا 1.6 64 بت على أوبونتو 11.04.الكاتب-1.3.0.ملف جرة في"/البيرة/حصة / جافا " التي ، على ما أعتقد ، هو المكان الكنسي لوضع حزم جافا.
رمز المجردة هنا (في حال كان يهم):
import org.scribe.builder.*;
import org.scribe.builder.api.*;
import org.scribe.oauth.*;
public class FacebookProg {
public static void main (String args[]) {
OAuthService service = new ServiceBuilder()
.provider(FacebookApi.class)
.apiKey("blah_blah")
.apiSecret("blah_blah")
.build();
}
}
المحلول
يجب أن يشير ClassPath إلى كلا من دليل المكتبة الخارجية التي تستخدمها والفصل الذي تحاول تشغيله.جرب هذا:
Windows: giveacodicetagpre.
Linux: giveacodicetagpre.
بالمناسبة، لتجميعها يجب أن تكون قد قمت بتشغيل هذا: giveacodicetagpre.
نصائح أخرى
لنفترض أنه، دليل البرنامج الخاص بك هو
$ home
$ home / lib / *. جرة
يمكنك كتابة نص مثل: giveacodicetagpre.
java -cp /usr/share/java/scribe-1.3.0.jar FacebookProg
هذا يجب أن تعمل بشكل جيد إذا قمت بتجميع فيسبوكبروغ.فئة في نفس الدليل.يمكنك أن تجرب java -cp /usr/share/java/scribe-1.3.0.jar:/locationOfFacebookProg.class directory/ FacebookProg
هذا
java -cp /usr/share/java/scribe-1.3.0.jar FacebookProg
يعني أنك تقوم بتشغيل FacebookProg
الطبقة ، وليس تجميعها.
إذا تركت -cp ...
خارج ، كنت ترك كلاسباث الحيوية بها ، وبالتالي فإن جفم لا يمكن العثور على الطبقات FacebookProg
يتطلب.
لتجميع ، تحتاج إلى
javac -cp /usr/share/java/scribe-1.3.0.jar FacebookProg.java
(لاحظ javac
, ، بدلا من java
لاستدعاء المترجم)
لتشغيل ، أنت تعرف بالفعل كيفية.
أيضا ، لديك أخطاء في خطوط فولوينغ:
export CLASSPATH="/usr/share/java"; java FacebookProf
export CLASSPATH="/usr/share/java/usr/share/java/scribe-1.3.0.jar"; java FacebookProg
الأخطاء الإملائية الأولى FacebookProg
وليس لديها جرة المطلوبة على كلاسباث ، والثاني لديه مسار خاطئ إلى جرة.حاول
export CLASSPATH="/usr/share/java/scribe-1.3.0.jar"; java FacebookProg
تأكد أيضا من أن البرطمان موجود بالفعل في /usr/share/java/scribe-1.3.0.jar