PDA

View Full Version : سوال: مشکل در اجرای هر جور application جاوا



ahmad598
پنج شنبه 18 مهر 1387, 20:56 عصر
من تازه دارم شروع می کنم به یاد گرفتن جاوا، ولی همین اول به مشکل برخوردم: هر برنامه ای که از کتابها کپی می کنم، کامپایل میشه(javac)، ولی وقتی که نوبت اجرا می رسه (java) همیشه این ارور رو می ده:



java.lang.NoClassDefFoundError: Documents
Exception in thread "main"


با jre های مختلف (یعنی 2 تا نسخه از ویندوز، یکی هم توی لینوکس) امتحان کردم، ولی همین ارور رو میده. مثلأ یکی از کدها:



public class Hello
{
public void main(String[] args)
{
System.out.println("hello");
}
}


یا یکی دیگه(که از کتاب java in a nutshell کپی کردم):



public class Factorial
{
public static void main(String[] args)
{
int input = Integer.parseInt(args[0]);
double result = factorial(input);
System.out.printIn(result);
}

public static double factorial(int x)
{
if (x<0)
return 0.0;
double fact = 1.0;
while (x>1)
{
fact = fact * x;
x = x-1;
}
return fact;
}

}



مشکل از کجاست؟ تازه جالبتر اینکه applet ها رو اجرا می کنه!

Nick2k
جمعه 19 مهر 1387, 05:02 صبح
باید فایل جاوا و کلاس تولید شده در پوشهbin داخل jdk باشند یا مسیر کامل این پوشه را به متغیر path اضافه کنیم.

ahmad598
جمعه 19 مهر 1387, 11:26 صبح
این کار رو هم کردم، باز هم همون مشکل رو اعلام کرد. کسی دیگه ای نمیدونه که من باید چی کار کنم؟

javaphantom
جمعه 19 مهر 1387, 17:50 عصر
این کار رو هم کردم، باز هم همون مشکل رو اعلام کرد. کسی دیگه ای نمیدونه که من باید چی کار کنم؟


توی مسیری که هستی یا همان folder ی که هستی یک فایل با پسوند bat درست کن اگر داری با windows کار می کنی
مثل runme.bat بعد داخل فایل رو edit کن


set JAVA_HOME=c:\java\jdk1.6.0
set CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;
set PATH=%PATH%;JAVA_HOME\bin;

نکته ها

در قسمت JAVA_HOME من مسیری الکی دادم تو باید مسیر اصلی jdk رو بهش بدی
درقسمت path وclasspath حتما علامت ; فراموش نشود که در آخر جمله باید گذاشته شود

در آخرین خط کلمه cmd رو بزن که console بیاد بالا
توی همان console فایل java رو compile با دستور javac و همان جا اجرا با دستور java

ahmad598
شنبه 20 مهر 1387, 15:56 عصر
دست شما درد نکنه، حالا اگر بخوام توی لینوکس همین کارها رو انجام بدم چه جوریه؟ (OpenSUSE 10.3) ضمنأ یه سوال دیگه: منظرتون این بود که توی فایل batch، آخرین خط باشه:

cmd

؟

javaphantom
شنبه 20 مهر 1387, 17:32 عصر
دست شما درد نکنه، حالا اگر بخوام توی لینوکس همین کارها رو انجام بدم چه جوریه؟ (OpenSUSE 10.3) ضمنأ یه سوال دیگه: منظرتون این بود که توی فایل batch، آخرین خط باشه:

cmd

؟

خوشم اومد که linux رو دوست داری. توی لینوکس همه چیز حرفه راحت ولی یکم لم داره.

یک console باز می کنی با دستور export عمل set رو انجام می ده و بجای % % در ویندوز ناراحت با کارکتر $ کار می کنی که هر دو بمعنی مقدار قبلی هستند.\
export CLASSPATH=$CLASSPATH=/opt/jdk1.6/jre/lib/rt.jar:
export PATH=$PATH:/opt/jdk1.6
این مسیرها همه اکی هستند.
نکته در classpath باید حروف بزرگ کاملا و علامت : در پایان ضروری
نکته : به محض بستن console تنظیمات از بین می ره
راه حل توی مسیر home یا ~ فایل bashrc. باز کن ویک بار بنویس یک عمر استفاده کن.

برای اینکه تنظیمات بیشتر انجام بدی من قبلا یادم هست که پست گذاشتم برو سرچ کن

اما در مورد سوال دوم
آره پایان خط بنویس cmd تا console باز بشته.
ویندوز دیگه.:لبخند: