انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: AmirZare در 15 مهر 1397، 11:07 ب‌ظ

عنوان: اررور در اجرای کد جاوا
ارسال شده توسط: AmirZare در 15 مهر 1397، 11:07 ب‌ظ
سلام من کد پایین رو اجرا میکنم ولی ارور میگیرم. توی کامپایل هم اروری نیست فقظ موقع اجرا این ارور میاد.
// Library
import java.util.Scanner;

// Main code
public class amir {
    public static void main(String[] args) {
        System.out.println("Type Something: ");
        Scanner inp = new Scanner(System.in);
        for (int i = 0; i < 10; i++) {
            System.out.println(inp.nextLine());
        }
    }
}
Error: Could not find or load main class amir.java
عنوان: پاسخ : اررور در اجرای کد جاوا
ارسال شده توسط: Silvio Dante در 15 مهر 1397، 11:59 ب‌ظ
در جاوا بعد از اینکه برنامه رو کامپایل می‌کنین، برای اجرا نباید فرمت فایل رو به دستور اضافه کنین و فقط کافیه اسم فایل رو بدون هیچ چیز اضافی‌ای به لانچر جاوا بدین:
javac amir.java
java amir
عنوان: پاسخ : اررور در اجرای کد جاوا
ارسال شده توسط: AmirZare در 16 مهر 1397، 02:55 ب‌ظ
در جاوا بعد از اینکه برنامه رو کامپایل می‌کنین، برای اجرا نباید فرمت فایل رو به دستور اضافه کنین و فقط کافیه اسم فایل رو بدون هیچ چیز اضافی‌ای به لانچر جاوا بدین:
javac amir.java
java amir
آهان خیلی ممنون؛ راستی جاوا رو دارم به پیشنهاد شما یاد میگیرم.(جاوا رو به جای kivy پیشنهاد دادین.)
عنوان: پاسخ : اررور در اجرای کد جاوا
ارسال شده توسط: Silvio Dante در 16 مهر 1397، 04:31 ب‌ظ
آهان خیلی ممنون؛ راستی جاوا رو دارم به پیشنهاد شما یاد میگیرم.(جاوا رو به جای kivy پیشنهاد دادین.)
خواهش می‌کنم.
بله اگه می‌خواین اندروید کار کنین در این لحظه فکر نکنم راهی بهتر از جاوا برای توسعه‌ی اپلیکیشن‌های اندرویدی وجود داشته باشه. (حالا kivy که از بدترین گزینه‌هاست.)
اما علاوه بر اون، جاوا جاهای دیگه هم بسیار کاربرد داره و احتمالا از یاد گرفتنش پشیمون نخواهید شد. (مخصوصا اگه طرفدار شی گرایی باشین ;) )
موفق باشین.
عنوان: پاسخ : اررور در اجرای کد جاوا
ارسال شده توسط: ALi.pAkrohk در 18 مهر 1397، 09:07 ب‌ظ
آهان خیلی ممنون؛ راستی جاوا رو دارم به پیشنهاد شما یاد میگیرم.(جاوا رو به جای kivy پیشنهاد دادین.)
خواهش می‌کنم.
بله اگه می‌خواین اندروید کار کنین در این لحظه فکر نکنم راهی بهتر از جاوا برای توسعه‌ی اپلیکیشن‌های اندرویدی وجود داشته باشه. (حالا kivy که از بدترین گزینه‌هاست.)
اما علاوه بر اون، جاوا جاهای دیگه هم بسیار کاربرد داره و احتمالا از یاد گرفتنش پشیمون نخواهید شد. (مخصوصا اگه طرفدار شی گرایی باشین ;) )
موفق باشین.
البته qt هم جدیدا خیلی برای اندروید بسیار بدرد بخور شده.
عنوان: پاسخ : اررور در اجرای کد جاوا
ارسال شده توسط: msajadi832 در 19 مهر 1397، 09:50 ق‌ظ
اگر دوست داری هم برای اندروید و هم IOS برنامه بسازی، می تونی React Native یاد بگیری. خروجی اش هم به نسبت سبک هست
عنوان: پاسخ : اررور در اجرای کد جاوا
ارسال شده توسط: Silvio Dante در 19 مهر 1397، 12:10 ب‌ظ
اگر دوست داری هم برای اندروید و هم IOS برنامه بسازی، می تونی React Native یاد بگیری. خروجی اش هم به نسبت سبک هست
تنها چیزی که بعد از جاوا و کاتلین من هم توصیه‌ش می‌کنم.
عنوان: پاسخ : اررور در اجرای کد جاوا
ارسال شده توسط: ALi.pAkrohk در 19 مهر 1397، 02:49 ب‌ظ
اگر دوست داری هم برای اندروید و هم IOS برنامه بسازی، می تونی React Native یاد بگیری. خروجی اش هم به نسبت سبک هست
تکنولوژی هر روز در حال پیشرفته.
فریمورکی که گوگل جدیدا معرفی کرده و به جرعت میگم برای توسعه خیلی سریع تر از React Native هست فریم ورک Flutter (https://flutter.io/) هستش حتما یک بار امتحانش کنید پشیمون نمیشید.
عنوان: پاسخ : اررور در اجرای کد جاوا
ارسال شده توسط: AmirZare در 21 مهر 1397، 10:11 ب‌ظ
خیلی ممنون از دوستان بابت راهنمایی هاشون.
به یک سوال دیگه بر خوردم!
این کد زیر چرا کامپایل نمیشه و ارور میده؟
ارور های جاوا رو نمیدونم چرا نمیتونم بخونم. :( :(
// main class.
public class amir {
    // main Func.
    public static void main(String[] args) {
        // two variables that uses in AmirFunc Function.
        String separator = "_";
        int counter = 0;
        // run AmirFunc Function.
        AmirFunc();
    }
    public static void AmirFunc() {
        // while loop for print numbers from 1 to 100000.
        while ( counter < 100000 ) {
            System.out.println(counter);
        }
        // if statement for break code if all the things run well.
        if ( counter == 100000 ) {
            System.out.println(separator * 20);
            System.out.println("The End...");
        }
        else {
            System.out.println("Error :)");
        }
    }
}
amir.java:13: error: cannot find symbol
        while(counter < 100000) {
              ^
  symbol:   variable counter
  location: class amir
amir.java:14: error: cannot find symbol
            System.out.println(counter);
                               ^
  symbol:   variable counter
  location: class amir
amir.java:17: error: cannot find symbol
        if ( counter == 100000 ) {
             ^
  symbol:   variable counter
  location: class amir
amir.java:18: error: cannot find symbol
            System.out.println(separator * 20);
                               ^
  symbol:   variable separator
  location: class amir
4 errors
فکر کنم میگه متغیرها رو نمیتونه پیدا کنه!
ولی مگه متغیر های من public نیستن که بقیه جا ها بشه ازشون استفاده کرد؟
عنوان: پاسخ : اررور در اجرای کد جاوا
ارسال شده توسط: Silvio Dante در 22 مهر 1397، 01:30 ق‌ظ
...
ولی مگه متغیر های من public نیستن که بقیه جا ها بشه ازشون استفاده کرد؟
دو متغیر separator و counter متغیرهای متد main هستن و متغیرهای یک متد خاص رو فقط می‌تونین داخل اون متد خاص استفاده کنین. برای رفع مشکل دوتا راه دارین. اولیش اینه که این دو متغیر رو داخل متد AmirFunc تعریف کنین یا اینکه اون‌ها رو داخل کلاس اصلی و خارج از هرگونه متد دیگه تعریف کنین. روش اول برای مواقعی هست که اون متغیر رو فقط داخل اون متد خاص نیاز دارین و روش دوم مناسب زمانی هست که اون متغیر خاص رو ممکنه داخل چندین متد مختلف یا جاهای دیگه (بیشتر از یک جا) استفاده کنین.
نکته‌ی دیگه‌ای هم که توی برنامه‌تون هست و باعث بروز مشکل میشه اون خطی هست که سعی کردین متغیر separator رو در عدد 20 ضرب کنین. این کار توی جاوا ممکن نیست و جاوا هیچوقت یک رشته رو در یک عدد ضرب نمی‌کنه. (احتمالا پایتون کار کردین :) ) ساده‌ترین راه برای انجام این کار استفاده از سازنده‌ی کلاس String هست، به این صورت:
new String(new char[number]).replace("\0", "-")
با رعایت این موارد خطاها از بین میره اما در نهایت من منطق برنامه‌تون رو درک نکردم و دقیقا نمی‌دونم می‌خواین چیکار کنین، برداشت من اینه که قصد دارین اعداد بین 0 تا 10000 رو چاپ کنین. صرف نظر از این که برای این کار روش بهتری هم هست اما شما یه حلقه‌ی بی نهایت نوشتین، چون در این حالت counter برابر با 0 هست پس شرط حلقه‌تون صحیحه و با توجه به اینکه مقدار counter در طول حلقه تغییری نمی‌کنه، برنامه تا ابد براتون 0 چاپ می‌کنه و هیچوقتم تموم نمیشه  :D  برای رفع این موضوع با توجه به برداشتی که من از هدف این برنامه دارم، باید داخل حلقه‌تون هر بار به مقدار counter یکی اضافه کنین.

و در نهایت:
// main class.
public class amir {
    // main Func.
    public static void main(String[] args) {

        // run AmirFunc Function.
        AmirFunc();
    }
    public static void AmirFunc() {

        // two variables that uses in AmirFunc Function.
        final String SEPARATOR = new String(new char[20]).replace("\0", "-");
        int counter = 0;

        // while loop for print numbers from 1 to 100000.
        while ( counter < 100000 ) {
            System.out.println(counter);
            counter++;
        }

        // if statement for break code if all the things run well.
        if ( counter == 100000 ) {
            System.out.println(SEPARATOR);
            System.out.println("The End...");
        }
        else {
            System.out.println("Error :)");
        }
    }
}

نکته‌ی اضافی هم اینکه موقع ساخت متدهاتون با return هم دوست باشین.  ;D

موفق باشین.
عنوان: پاسخ : اررور در اجرای کد جاوا
ارسال شده توسط: AmirZare در 22 مهر 1397، 01:23 ب‌ظ
خیلی ممنون Silvio Dante.
از توی یک videolist یوتیوب میرم جلو؛ آخرین ویدئویی که تا الان ازش دیدم همین حلقه while بود برای همین برنامه های الکی مینویسم برا تمرین.
راستی این قسمت که نوشته بودین final String SEPARATOR کار final چیه؟
عنوان: پاسخ : اررور در اجرای کد جاوا
ارسال شده توسط: Silvio Dante در 22 مهر 1397، 03:17 ب‌ظ
خیلی ممنون Silvio Dante.
از توی یک videolist یوتیوب میرم جلو؛ آخرین ویدئویی که تا الان ازش دیدم همین حلقه while بود برای همین برنامه های الکی مینویسم برا تمرین.
راستی این قسمت که نوشته بودین final String SEPARATOR کار final چیه؟
خواهش می‌کنم.
فاینال باعث میشه مقدار متغیر بعد از اولین مقدار دهی دیگه قابل تغییر نباشه (اصطلاحا به این نوع متغیرها میگن consonant) و مواقعی که می‌خواین متغیر صرفا یه مقدار ثابت داشته باشه بهتره از final استفاده کنین.