لینوکس، عشق، برنامه نویسی



 تبدیل تاریخ در جاوا

 

دوستان سلام. من میخاستم تاریخ شمسی رو به میلادی و قمری در زبان جاوا تبدیل کنم. بعد از چندین روز جستجوی های فراوان و صرف وقت بسیار، در نهایت تونستم این کار رو بکنم. در این پست می خوام به شما هم آموزش بدم تا وقت شما مثل من تلف نشه

 

در این پست می خوام اموزش تبدیل انواع تاریخ (شمسی به میلادی، شمسی به قمری، میلادی به شمسی، میلادی به قمری، قمری به شمسی و قمری به میلادی) رو آموزش بدم.

 

اول از همه بگم که با کلاس های خود جاوا نمیتونید این کار رو انجام بدید و بنابراین مجبورید از کد ها و لایبرری هایی که دیگران نوشته اند استفاده کنید.

 

اگه در گوگل سرچ کنید، کد های زیادی برای تبدیل تاریخ در جاوا پیدا میکنید، ولی اکثرا ایراد دارن و در یک محدوده ی زمانی مشخصی خروجی درست میدن و برای بقیه زمان ها خروجی غلط میده.

 

من بعد از کلی جستجو، یک کتابخانه ی بسیار خوب به نام icu4j پیدا کردم که توسط شرکت معروف IBM برای جاوا توسعه داده شده. این کتاب خانه قابلیت های فراوانی داره و یکی از قابلیت هاش تبدیل انواع تاریخ به یکدیگر هست.

 

 

دوستان عزیز، متاسفانه متاسفانه و باز هم متاسفانه، در اینترنت داکیومنت و مستند سازی خوبی برای این لایبرری و نحوه ی تبدیل تاریخ با اون انجام نشده و شما کل اینترنت رو جستجو کنید شاید یک یا نهایتا دو نمونه کد ازش پیدا کنید. من با کلی بدبختی و آزمون و خطا و صرف کلی وقت تونستم در نهایت باهاش تبدیل تاریخ انجام بدم و در مقاله میخوام به شما هم آموزش بدم.

 

دوستان یک نکته رو همینجا بگم، اصولا مبحث تبدیل تاریخ کار راحتی نیست، مفاهیم بسیار زیادی داره، از جمله سال کبیسه، مبحث timezone و موارد دیگه که مجالش نیست براتون بگم. خب بریم سراغ اصل کار و من براتون چندتا کد مینویسم و تبدیل تاریخ انجام میدیم.

 

 


به نام خدا

 

 

 

 

بله، سیستم عامل افسانه ای ویندوز ۷ به پایان راه رسید.

 

از امروز، سه شنبه ۲۴ دی ماه ۱۳۹۸، مایکروسافت دیگر ویندوز ۷ را پشتیبانی نخواهد کرد و باید برای همیشه با این ویندوز خداحافظی کنید زیرا که دیگر وصله های امنیتی برای این نسخه از ویندوز منتشر نخواهد شد و بنابراین در معرض انواع تهدیدات امنیتی قرار خواهد گرفت. با جرات می توان گفت که بعد از ویندوز xp، هیچکدام از نسخه های ویندوز، نه ویندوز  ویستا، نه ویندوز ۸ و نه ویندوز ۱۰ به اندازه ی ویندوز ۷ مورد استقبال و محبوبیت طرفداران قرار نگرفتند و امروز قطعا روز سختی برای طرفداران خواهد بود چرا که مایکروسافت دیگر هیچ گاه ان را پشتیبانی نخواهد کرد. این خبر برای ما ایرانی ها

ادامه مطلب


به نام خدا

 

در این پست میخوام از یه تجربه ی تلخ در استفاده از لینوکس بگم :)

 

قطعا برای شما هم پیش اومده که مجبور بشید لینوکس خودتون رو کلا فرمت کنید و از نو دوباره نصب کنید :) امروز این داستان برای من پیش اومد.

 

قضیه از این قرار بود که من دیروز دانلود منیجر پرسپولیس رو خواستم روی مانجاروم نصب کنم و موفق هم شدم.

رفتم توی سایتش اونجا توضیح داده بود که برای نصب اون روی توزیع آرچ و توزیع های مبتنی بر آرچ، باید AUR استفاده کرد و از اونجا نصبش کرد.

ادامه مطلب


به نام خدا

  

 

 

بله! عنوان رو درست خوندید!!! ، در این پست میخوام نحوه ی نصب یک توزیع لینوکس رو روی فلش بهتون یاد بدم!!! اگه سوالی داشتید حتما واسم کامنت بزارید :)

سیستم عامل لینوکس بسیار قابل حمل هست, به این معنی که شما میتونید این سیستم عامل رو روی هر نوع حافظه ای نصب کنید, این حافظه میتونه یک حافظه ی اینترنال (داخلی) باشه که داخل کیس کامپیوتر ها و لبتاب ها هست, میتونه یک حافظه اکسترنال (خارجی) باشه که توسط usb به سیستم وصل میشه, و حتی میتونه یک حافظه ی فلش باشه!!  :))))
 
این یکی از عجایب لینوکس هست که

ادامه مطلب


به نام خدا

 

 


در این مقاله میخوام به طور مختصر و کوتاه به معرفی فریم ورک GTK بپردازم

 
اگر شما هم مثل من به نرم افزار های گرافیکی علاقه داشته باشید و کنجکاو باشید که بدونید یک نرم افزار (مثل فتوشاپ یا فایرفاکس و .) به چه زبانی نوشته شدن, باید با مفهوم فریم ورک های گرافیکی(مثل GTK و Qt و غیره ) اشناتون کنم.
 

 
تعریف فریم ورک:

فریم ورک به کدهایی گفته میشو که به یک زبان خاص (مثلا  c یا ++c یا جاوا و .) و برای اهداف خاصی نوشته می شوند
 
برای ایجاد رابط کاربری یا همون GUI نرم افزارها ( یا به قول خودمون، ظاهر برنامه ها ), از فریم ورک های مختلفی استفاده میشه. یکی از معروف ترین اونها که اوپن

ادامه مطلب


 تبدیل تاریخ در جاوا

 

دوستان سلام. من میخاستم تاریخ شمسی رو به میلادی و قمری در زبان جاوا تبدیل کنم. بعد از چندین روز جستجوی های فراوان و صرف وقت بسیار، در نهایت تونستم این کار رو بکنم. در این پست می خوام به شما هم آموزش بدم تا وقت شما مثل من تلف نشه

 

در این پست می خوام اموزش تبدیل انواع تاریخ (شمسی به میلادی، شمسی به قمری، میلادی به شمسی، میلادی به قمری، قمری به شمسی و قمری به میلادی) رو آموزش بدم.

 

اول از همه بگم که با کلاس های خود جاوا نمیتونید این کار رو انجام بدید و بنابراین مجبورید از کد ها و لایبرری هایی که دیگران نوشته اند استفاده کنید.

 

اگه در گوگل سرچ کنید، کد های زیادی برای تبدیل تاریخ در جاوا پیدا میکنید، ولی اکثرا ایراد دارن و در یک محدوده ی زمانی مشخصی خروجی درست میدن و برای بقیه زمان ها خروجی غلط میده.

 

من بعد از کلی جستجو، یک کتابخانه ی بسیار خوب به نام icu4j پیدا کردم که توسط شرکت معروف IBM برای جاوا توسعه داده شده. این کتاب خانه قابلیت های فراوانی داره و یکی از قابلیت هاش تبدیل انواع تاریخ به یکدیگر هست.

 

 

دوستان عزیز، متاسفانه متاسفانه و باز هم متاسفانه، در اینترنت داکیومنت و مستند سازی خوبی برای این لایبرری و نحوه ی تبدیل تاریخ با اون انجام نشده و شما کل اینترنت رو جستجو کنید شاید یک یا نهایتا دو نمونه کد ازش پیدا کنید. من با کلی بدبختی و آزمون و خطا و صرف کلی وقت تونستم در نهایت باهاش تبدیل تاریخ انجام بدم و در مقاله میخوام به شما هم آموزش بدم.

 

دوستان یک نکته رو همینجا بگم، اصولا مبحث تبدیل تاریخ کار راحتی نیست، مفاهیم بسیار زیادی داره، از جمله سال کبیسه، مبحث timezone و موارد دیگه که مجالش نیست براتون بگم. خب بریم سراغ اصل کار و من براتون چندتا کد مینویسم و تبدیل تاریخ انجام میدیم.

 

دانلود فایل لایبرری icu4j و اضافه کردن ان به اکلیپس:

فایل icu4j.jar رو میتونید از اینجا دانلود کنید و به پروژتون در اکلیپس اضافه کنید (اسکرین شات های زیر رو تماشا کنید).

 

دوستان زمانی که من دارم این پست رو مینویسم اخرین ورژن این لایبرری 65.1 هست. ورژن های جدید تر ممکنه در آینده بیاد. برای دانلود آخرین ورژن لایبرری روی عدد 65.1 کلیک کنید (مطابق عکس زیر)

 

 

 

 

 

 

و سپس عکس زیر

 

 

 

 

 

 

 

 

 

 

 

 

 



خب در این قسمت، وبسایت ها و وبلاگ هایی که به نظرم جالب و مفید هستن رو به شما هم معرفی میکنم :)

 

  • اولین مورد، وبسایت اقای علیرضا امیرصمیمی هستش که ایشون توسعه دهنده ی دانلود منیجر پرسپولیس هستن. همونطور که میدونید دانلود منیجیر پرسپولیس یکی از بهترین دانلود منیجر های گرافیکی برای لینوکس هستش ( البته الان هم روی ویندوز و هم روی مک هم میتونید استفادش کنید). این دانلود منیجر کاملا اوپن سورس و رایگان هست و جایگزین بسیار عالی برای IDM ویندوز هستش. حتما به وبلاگ اقای امیرصمیمی سر بزنید مطالب جالبیتو وبلاگش هست.  ادرس وبسایتش

    https://amirsamimi.ir

 

  • دومین مورد، یک کانال بسیار خوب در یوتوب برای اموزش کامپیوتر و بررسی توزیع های لینوکسی هست. ادرس کانال رو براتون میزارم حتما برید سابسکرایب کنید
    https://www.youtube.com/channel/UChOR99ss9_-BSVtIzjQh99g

 

 


 تبدیل تاریخ در جاوا

 

دوستان سلام. من میخاستم تاریخ شمسی رو به میلادی و قمری در زبان جاوا تبدیل کنم. بعد از چندین روز جستجوی های فراوان و صرف وقت بسیار، در نهایت تونستم این کار رو بکنم. در این پست می خوام به شما هم آموزش بدم تا وقت شما مثل من تلف نشه

 

در این پست می خوام اموزش تبدیل انواع تاریخ (شمسی به میلادی، شمسی به قمری، میلادی به شمسی، میلادی به قمری، قمری به شمسی و قمری به میلادی) رو آموزش بدم.

 

اول از همه بگم که با کلاس های خود جاوا نمیتونید این کار رو انجام بدید و بنابراین مجبورید از کد ها و لایبرری هایی که دیگران نوشته اند استفاده کنید.

 

اگه در گوگل سرچ کنید، کد های زیادی برای تبدیل تاریخ در جاوا پیدا میکنید، ولی اکثرا ایراد دارن و در یک محدوده ی زمانی مشخصی خروجی درست میدن و برای بقیه زمان ها خروجی غلط میده.

 

من بعد از کلی جستجو، یک کتابخانه ی بسیار خوب به نام icu4j پیدا کردم که توسط شرکت معروف IBM برای جاوا توسعه داده شده. این کتاب خانه قابلیت های فراوانی داره و یکی از قابلیت هاش تبدیل انواع تاریخ به یکدیگر هست.

 

 

دوستان عزیز، متاسفانه متاسفانه و باز هم متاسفانه، در اینترنت داکیومنت و مستند سازی خوبی برای این لایبرری و نحوه ی تبدیل تاریخ با اون انجام نشده و شما کل اینترنت رو جستجو کنید شاید یک یا نهایتا دو نمونه کد ازش پیدا کنید. من با کلی بدبختی و آزمون و خطا و صرف کلی وقت تونستم در نهایت باهاش تبدیل تاریخ انجام بدم و در مقاله میخوام به شما هم آموزش بدم.

 

دوستان یک نکته رو همینجا بگم، اصولا مبحث تبدیل تاریخ کار راحتی نیست، مفاهیم بسیار زیادی داره، از جمله سال کبیسه، مبحث timezone و موارد دیگه که مجالش نیست براتون بگم. خب بریم سراغ اصل کار و من براتون چندتا کد مینویسم و تبدیل تاریخ انجام میدیم.

 

دانلود فایل لایبرری icu4j و اضافه کردن ان به اکلیپس:

فایل icu4j.jar رو میتونید از اینجا دانلود کنید و به پروژتون در اکلیپس اضافه کنید (اسکرین شات های زیر رو تماشا کنید).

 

دوستان زمانی که من دارم این پست رو مینویسم اخرین ورژن این لایبرری 65.1 هست. ورژن های جدید تر ممکنه در آینده بیاد. برای دانلود آخرین ورژن لایبرری روی عدد 65.1 کلیک کنید (مطابق عکس زیر)

 

 

 

 

 

 

و سپس عکس زیر

 

 

 

 

 

و اما بریم سراغ مثال ها و چندتا نمونه کد براتون بنویسم

 

تبدیل تاریخ میلادی به هجری شمسی:

System.out.Println








 

 

 

 

 



خب در این قسمت، وبسایت ها و وبلاگ هایی که به نظرم جالب و مفید هستن رو به شما هم معرفی میکنم :)

 

  • اولین مورد وبسایت اقای علیرضا امیرصمیمی هستش که ایشون توسعه دهنده ی دانلود منیجر پرسپولیس هستن. همونطور که میدونید دانلود منیجیر پرسپولیس یکی از بهترین دانلود منیجر های گرافیکی برای لینوکس هستش ( البته الان هم روی ویندوز و هم روی مک هم میتونید استفادش کنید). این دانلود منیجر کاملا اوپن سورس و رایگان هست و جایگزین بسیار عالی برای IDM ویندوز هستش. حتما به وبلاگ اقای امیرصمیمی سر بزنید مطالب جالبیتو وبلاگش هست.
    ادرس وبسایتش

    https://amirsamimi.ir

 

  • دومین مورد یک کانال بسیار خوب در یوتوب برای اموزش کامپیوتر و بررسی توزیع های لینوکسی هست. ادرس کانال رو براتون میزارم حتما برید سابسکرایب کنید
    https://www.youtube.com/channel/UChOR99ss9_-BSVtIzjQh99g

 

  • آقا (یا خانم) منیرزاده، در گیت هاب خودش، لیستی از بهترین پادکست های فارسی حوزه تکنولوژی و فناوری‌ اطلاعات رو گذاشته. اگه عاشق تکنولوژی و همچنین پادکست هستین، میتونید به این لیست یه نگاهی بندازید.
    آدرس گیت هاب :

    https://github.com/Monirzadeh/awesome-persian-podcasts

 

 


 تبدیل تاریخ در جاوا

 

دوستان سلام. من میخاستم تاریخ شمسی رو به میلادی و قمری در زبان جاوا تبدیل کنم. بعد از چندین روز جستجوی های فراوان و صرف وقت بسیار، در نهایت تونستم این کار رو بکنم. در این پست می خوام به شما هم آموزش بدم تا وقت شما مثل من تلف نشه

 

در این پست می خوام اموزش تبدیل انواع تاریخ (شمسی به میلادی، شمسی به قمری، میلادی به شمسی، میلادی به قمری، قمری به شمسی و قمری به میلادی) رو آموزش بدم.

 

اول از همه بگم که با کلاس های خود جاوا نمیتونید این کار رو انجام بدید و بنابراین مجبورید از کد ها و لایبرری هایی که دیگران نوشته اند استفاده کنید.

 

اگه در گوگل سرچ کنید، کد های زیادی برای تبدیل تاریخ در جاوا پیدا میکنید، ولی اکثرا ایراد دارن و در یک محدوده ی زمانی مشخصی خروجی درست میدن و برای بقیه زمان ها خروجی غلط میده.

 

من بعد از کلی جستجو، یک کتابخانه ی بسیار خوب به نام icu4j پیدا کردم که توسط شرکت معروف IBM برای جاوا توسعه داده شده. این کتاب خانه قابلیت های فراوانی داره و یکی از قابلیت هاش تبدیل انواع تاریخ به یکدیگر هست.

 

 

دوستان عزیز، متاسفانه متاسفانه و باز هم متاسفانه، در اینترنت داکیومنت و مستند سازی خوبی برای این لایبرری و نحوه ی تبدیل تاریخ با اون انجام نشده و شما کل اینترنت رو جستجو کنید شاید یک یا نهایتا دو نمونه کد ازش پیدا کنید. من با کلی بدبختی و آزمون و خطا و صرف کلی وقت تونستم در نهایت باهاش تبدیل تاریخ انجام بدم و در مقاله میخوام به شما هم آموزش بدم.

 

دوستان یک نکته رو همینجا بگم، اصولا مبحث تبدیل تاریخ کار راحتی نیست، مفاهیم بسیار زیادی داره، از جمله سال کبیسه، مبحث timezone و موارد دیگه که مجالش نیست براتون بگم. خب بریم سراغ اصل کار و من براتون چندتا کد مینویسم و تبدیل تاریخ انجام میدیم.

 

دانلود فایل لایبرری icu4j و اضافه کردن ان به اکلیپس:

فایل icu4j.jar رو میتونید از اینجا دانلود کنید و به پروژتون در اکلیپس اضافه کنید (اسکرین شات های زیر رو تماشا کنید).

 

دوستان زمانی که من دارم این پست رو مینویسم اخرین ورژن این لایبرری 65.1 هست. ورژن های جدید تر ممکنه در آینده بیاد. برای دانلود آخرین ورژن لایبرری روی عدد 65.1 کلیک کنید (مطابق عکس زیر)

 

 

 

 

 

 

و سپس عکس زیر

 

 

 

 

 

و اما بریم سراغ مثال ها و چندتا نمونه کد براتون بنویسم. اولین مثال رو به هر دو روش مینویسم. اما مثال های بعدی رو فقط با روش دوم.

 

تبدیل تاریخ میلادی به هجری شمسی: (روش اول)

 

package finalCal;
import java.time.ZoneId;
import com.ibm.icu.util.TimeZone;
import com.ibm.icu.util.Calendar;
import com.ibm.icu.util.GregorianCalendar;
import com.ibm.icu.util.ULocale;

public class From_Gregorian_to_Persian {

    public  From_Gregorian_to_Persian () {

        ULocale PERSIAN_LOCALE = new ULocale("fa_IR@calendar=persian");
        ZoneId IRAN_ZONE_ID = ZoneId.of("Asia/Tehran");

        Calendar gregoriancal = new GregorianCalendar();

        gregoriancal.set(2025, Calendar.AUGUST, 1);

        System.out.println("Gregorian Calendar:\t" + (gregoriancal.get(Calendar.YEAR)) + "/" + ( gregoriancal.get(Calendar.MONTH ) +1) + "/" + gregoriancal.get(Calendar.DATE));

        Calendar persiancal = Calendar.getInstance(PERSIAN_LOCALE);
        persiancal.clear();
        persiancal.setTimeZone(TimeZone.getTimeZone("Asia/Tehran"));

        persiancal.setTime(gregoriancal.getTime());

        // Display the date.
        System.out.println("Persian Calendar:\t" + (persiancal.get(Calendar.YEAR) ) + "/" + ( persiancal.get (Calendar.MONTH) + 1 ) + "/" + persiancal.get(Calendar.DATE));

    }

}

 

Output:
Gregorian Calendar:    2025/8/1
Persian Calendar:    1404/5/10

 

در واقع در کد بالا، لازم نبود که آبجکت persiancal رو بسازیم. بدون اون هم میتونستیم تاریخ فارسی رو بدست بیارم. کد پایین رو از روش دوم نوشتم، ببینید

 

package finalCal;

import java.time.ZoneId;

import com.ibm.icu.text.DateFormat;
import com.ibm.icu.text.SimpleDateFormat;
import com.ibm.icu.util.Calendar;
import com.ibm.icu.util.TimeZone;
import com.ibm.icu.util.ULocale;

public class From_Gregorian_to_Islamic {

      public From_Gregorian_to_Islamic () {

           
            ULocale PERSIAN_LOCALE = new ULocale("fa_IR@calendar=persian");
            ZoneId IRAN_ZONE_ID = ZoneId.of("Asia/Tehran");

            Calendar gregorianCalendar = Calendar.getInstance(gregorian_LOCALE);
            gregorianCalendar.setLenient(false);
            gregorianCalendar.clear();
            gregorianCalendar.setTimeZone(TimeZone.getTimeZone("Asia/Tehran"));
            // 29 september 2019
            gregorianCalendar.set(2019, 8, 29);

            // full date
            DateFormat df = DateFormat.getDateInstance(DateFormat.FULL, PERSIAN_LOCALE);
            System.out.println(df.format(gregorianCalendar.getTime()));

            // date in "yyyy MMM dd" format
            SimpleDateFormat df1 = new SimpleDateFormat ("yyyy MMM dd", PERSIAN_LOCALE );
            System.out.println(df1.format(gregorianCalendar.getTime()));

            // name of month
            SimpleDateFormat df2 = new SimpleDateFormat (SimpleDateFormat.MONTH, PERSIAN_LOCALE );
            System.out.println(df2.format(gregorianCalendar.getTime()));

            // name of weekday
            SimpleDateFormat df3 = new SimpleDateFormat (SimpleDateFormat.WEEKDAY, PERSIAN_LOCALE );
            System.out.println(df3.format(gregorianCalendar.getTime()));

      }
}

 

 

 

 

 

 



خب در این قسمت، وبسایت ها و وبلاگ هایی که به نظرم جالب و مفید هستن رو به شما هم معرفی میکنم :)

 

  • اولین مورد وبسایت اقای علیرضا امیرصمیمی هستش که ایشون توسعه دهنده ی دانلود منیجر پرسپولیس هستن. همونطور که میدونید دانلود منیجیر پرسپولیس یکی از بهترین دانلود منیجر های گرافیکی برای لینوکس هستش ( البته الان هم روی ویندوز و هم روی مک هم میتونید استفادش کنید). این دانلود منیجر کاملا اوپن سورس و رایگان هست و جایگزین بسیار عالی برای IDM ویندوز هستش. حتما به وبلاگ اقای امیرصمیمی سر بزنید مطالب جالبیتو وبلاگش هست.
    ادرس وبسایتش

    https://amirsamimi.ir

 

  • دومین مورد یک کانال بسیار خوب در یوتوب برای اموزش کامپیوتر و بررسی توزیع های لینوکسی هست. ادرس کانال رو براتون میزارم حتما برید سابسکرایب کنید
    https://www.youtube.com/channel/UChOR99ss9_-BSVtIzjQh99g

 

  • آقای اشکان رحمانی هم در گیت هاب خوش لیستی از بهترین پادکست های فارسی زبان رو (در حوزه های گوناگون) جمع اوری کرده که خیلی خوبه. توی لیستش میتونید بهترین پادکست های فارسی حوزه تکنولوژی و فناوری‌ اطلاعات رو هم پیدا کنید. اگه به پادکست علاقه دارید حتما به گیت هاب ایشون سر بزنید و لیست رو یه نگاهی بکنید.
    آدرس گیت هاب :

    https://github.com/ashkanRmk/awesome-persian-podcasts

 


 تبدیل تاریخ در جاوا با کتابخانه icu4j شرکت IBM

 

دوستان سلام. من میخاستم تاریخ شمسی رو به میلادی و قمری در زبان جاوا تبدیل کنم. بعد از چندین روز جستجوی های فراوان و صرف وقت بسیار، در نهایت تونستم این کار رو بکنم. در این پست می خوام به شما هم آموزش بدم تا وقت شما مثل من تلف نشه

 

در این پست می خوام اموزش تبدیل انواع تاریخ (شمسی به میلادی، شمسی به قمری، میلادی به شمسی، میلادی به قمری، قمری به شمسی و قمری به میلادی) رو آموزش بدم.

 

اول از همه بگم که با کلاس های خود جاوا نمیتونید این کار رو انجام بدید و بنابراین مجبورید از کد ها و لایبرری هایی که دیگران نوشته اند استفاده کنید.

 

اگه در گوگل سرچ کنید، کد های زیادی برای تبدیل تاریخ در جاوا پیدا میکنید، ولی اکثرا ایراد دارن و در یک محدوده ی زمانی مشخصی خروجی درست میدن و برای

ادامه مطلب


 

 

اگه می خواید توی اینستاگرام در قسمت بیو، بیشتر از یک لینک داشته باشید پس حتما باید زیلینک رو ببینید. زیلینک یه سرویس خیلی خیلی جالب هست که حتما باید توی اینستاگرامتون ازش استفاده بکنید. زیلینک درواقع به عنوان کارت ویزیت حرفه ای شما حساب میشه. میتونید مشخصاتتون رو توش بنویسید، هر شماره تلفنی لینکی ادرسی پیجی ، هر چی دارید توش مینویسید  و بعدش زیلینک به شما یک لینک میده و اون لینک رو توی اینستا میزارید. از این به بعد هر کی روی لینک شما کلیک کرد میاد به پروفایل شما در زیلینک و تمامی راههای ارتباطی با شما و پیغام های شمارو میبینه . حتما به سایتش سر بزنید.

 

ادرس سایتش : 

https://zil.ink


 

 

آقای اشکان رحمانی هم در گیت هاب خوش لیستی از بهترین پادکست های فارسی زبان رو (در حوزه های گوناگون) جمع اوری کرده که خیلی خوبه. توی لیستش میتونید بهترین پادکست های فارسی حوزه تکنولوژی و فناوری‌ اطلاعات رو هم پیدا کنید. اگه به پادکست علاقه دارید حتما به گیت هاب ایشون سر بزنید و لیست رو یه نگاهی بکنید.
 

 

آدرس گیت هاب :  

https://github.com/ashkanRmk/awesome-persian-podcasts

 


 

 

می خوام یک کانال بسیار خوب در یوتوب برای اموزش کامپیوتر و بررسی توزیع های لینوکسی و اخبار دنیای اوپن سورس و معرفی نرم افزار های اوپن سورس بهتون معرفی بکنم. ادرس کانال رو براتون میزارم حتما برید سابسکرایب کنید

 

ادرس کانال در یوتوب:  https://www.youtube.com/channel/UChOR99ss9_-BSVtIzjQh99g

 


 

اولین موردی که در این بخش از وبلاگ می خوام بهتون معرفی بکنم، وبسایت اقای علیرضا امیرصمیمی هستش که ایشون توسعه دهنده ی دانلود منیجر پرسپولیس هستن.

همونطور که میدونید دانلود منیجیر پرسپولیس یکی از بهترین دانلود منیجر های گرافیکی برای لینوکس هستش ( البته الان هم روی ویندوز و هم روی مک هم میتونید استفادش کنید).

این دانلود منیجر کاملا اوپن سورس و رایگان هست و جایگزین بسیار عالی برای IDM ویندوز هستش. حتما به وبلاگ اقای امیرصمیمی سر بزنید مطالب جالبی توی وبلاگش هست.


ادرس وبسایتش

https://amirsamimi.ir


 

 

دوستان سلام. تقریبا چند روز پیش میخواستم برنامه gambas3 رو روی مانجارو نصب کنم، برنامه رو نصب کردم ولی برنامه اجرا نشد و یک ارور داد به این شکل: 

gb.gui.qt: error: cannot load component 'gb.qt5'

 

از ظاهر اررور میشه فهمید که یک ایرادی در رابطه با پجیج های کیوت وجود داره ولی چند روز از این قضیه میگذره و هنوز نتونستم این مشکل رو برطرف بکنم. راستش رو بخواید دیروز احساس کردم بعد از حدود ۴ ۵ سال کار کردن با لینوکس،  هیچ چیز از پکیج ها نمیدونم و به همین خاطر تصمیم گرفتم یک مقاله ی خیلی جامع درباره پکیج ها و پکیج منیجر ها در لینوکس بنویسم تا هم خودم ۰ تا ۱۰۰ این قضیه رو یاد گرفته باشم و هم به شما یاد بدم. پس با من همراه باشید.

ادامه مطلب


 

 

 

دوستان لحظه ای که منتظرش بودید فرا رسید. اوبونتو 20.04 منتشر شده و اماده ی دانلود هستش. میتونید برید از سایتش دانلود بکنید :)

 

برای دیدن همه ی اخبار مربوط به دنیای اوپن سورس در یک صفحه، به منوی بالایی وبلاگ مراجعه فرمایید.


 

فصل هفتم

 

نحوه ی اجرای پروژه ی کامپایل شده ی جاوا با مفسر جاوا (یا همان  java)

 

در فصل قبل یاد گرفتیم که چگونه پروژه ی خود را کامپایل کنیم و فایل های بایت کد (یعنی همان فایل های class.) را تولید کنیم.

بعد از اینکه فایل های بایت کد توسط javac تولید شد، حالا باید این فایل ها را توسط مفسر جاوا (یعنی ابزار java  که در jdk

هست)، اجرا کنیم.

 

 

 

ابتدا باید نگاهی به فلگ های java بندازیم. دستور java -help را در ترمینال وارد می کنیم.

Usage: java [-options] class [args.]
           (to execute a class)
   or  java [-options] -jar jarfile [args.]
           (to execute a jar file)
where options include:
    -d32      use a 32-bit data model if available
    -d64      use a 64-bit data model if available
    -server      to select the "server" VM
                  The default VM is server,
                  because you are running on a server-class machine.

    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A : separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose:[class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  Warning: this feature is deprecated and will be removed
                  in a future release.
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -no-jre-restrict-search
                  Warning: this feature is deprecated and will be removed
                  in a future release.
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>.|:<classname>]
    -enableassertions[:<packagename>.|:<classname>]
                  enable assertions with specified granularity
    -da[:<packagename>.|:<classname>]
    -disableassertions[:<packagename>.|:<classname>]
                  disable assertions with specified granularity
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                  see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument
    -splash:<imagepath>
                  show splash screen with specified image
See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.
 

 

 

از بین این فلگ ها، فلگ cp- یا همان  classpath- برای ما خیلی مهم است. در واقع ما باید آدرس پکیج روت دایرکتوری رو بدیم به این فلگ.

به عبارت دیگر، زمانی که مفسر جاوا فایل Main.class را اجرا می کند، اگر در کلاس Main، کلاس هایی دیگری نیز import شده باشند، در آن صورت، مفسر، در ادرس پکیج روت دایرکتوری، شروع به گشتن به دنبال بایت کد آن کلاس ها می کند.

 

فرض کنید در فایل Main.class،  یک کلاسی import شده به نام Util و فایل Util.class نیز در پکیج com.blog قرار دارد و پوشه ی com نیز روی دسکتاپ قرار دارد. در آن صورت، "پکیج روت دایرکتوری" ما می شود home/linuxgeek/Desktop/

 

به عبارت دیگر، زمانی که مفسر جاوا فایل Main.class را اجرا می کند، به دنبال فایل Util.class می گردد (چون در کلاس مین import شده)، بنابراین، کامپایلر در پکیج روت دایرکتوری (  home/linuxgeek/Desktop/  )  شروع به گشتن به دنبال پکیج com.blog و فایل Util.class می کند.

 

 

نکته: اگر پکیج های ما در آدرس های مختلفی پراکنده باشند، در آن صورت ما چندین پکیج روت دایرکتوری داریم و باید آدرس همه ی آنها را بدهیم به classpath تا مفسر بتواند بایت کدها را پیدا کند. آدرس ها را نیز با علامت   :   از هم جدا می کنیم (در لینوکس با ; )

 

 

ببینید دوستان، زمان اجرای برنامه های جاوا، ممکن است سناریو های مختلفی پیش بیاید. مهمترین نکته ای که باید بدونید این هست که مفسر جاوا به دنبال فایل های class. می گردد برای اجرا کردن آنها. (حالا این فایل class. ممکن است درون یک فایل zip باشند، ممکن است درون یک فایل jar باشند و یا درون یک پوشه ی معمولی در سیستم فایل شما). این فایل ها در هر کجا که باشند، باید آدرس آن را بدهید به classpath تا مفسر بتواند آنها را پیدا کند.  اگر فقط همین نکته را به ذهن بسپرید تمومه.


 

 

طبق آنچه که از دستور java -help بدست آوردیم،  با ۲ روش کلی میشه پروژه های جاوا رو اجرا کرد. این دو روش رو در زیر می بینید.

 

Usage:

java [-options] class [args.] (to execute a class)

 or

java [-options] -jar jarfile [args.] (to execute a jar file)
 

 

 

در هر دوی این روش ها، بجای options-  می تونیم فلگ های مختلف رو قرار بدیم و برای ما فقط فلگ classpath مهمه. پس بجای option، فلگ cp را قرار می دهیم.

 

 

روش اول:

 


java -classpath path1;path2;file.zip;file.jar        path/to/Main.class          args
 

 

path1: ادرس پکیج روت دایرکتوری

path2: ادرس پکیج روت دایرکتوری

file.zip: فایل زیپ که می تواند حاوی پکیج ها و فایل های class.  باشد.

file.jar: فایل جار که می تواند حاوی پکیج ها و فایل های class.  باشد.

path/to/Main.class: ادرس فایل Main.class

args: آرگومان هایی که می خواهیم به متد main ارسال شوند

 

 

توجه:  به classpath باید آدرس پکیج روت دایرکتوری رو بدید تا مفسر جاوا بتونه در اون ادرس ها جستجو کنه و فایل های class. رو پیدا کنه  (حالا این فایل های class. میتونن داخل فایل زیپ باشن، یا داخل فایل جار، و یا در یک پوشه در سیستم فایل)

 

توجه: اگر classpath رو ندید به مفسر، بطور پیش فرض، current working directory به عنوان classpath تعیین میشه. به عبارت دیگر، زمانی که مفسر جاوا بخواهد دنبال پکیج ها و بایت کد ها بگردد، از ادرس فعلی  شروع می کند به گشتن.

 

 

روش دوم:

 


java     -classpath  path1;path2;file.zip;file.jar         -jar file.jar     args
 

 

این دستور رو زمانی اجرا می کنیم که پروژه رو کامپایل کردیم، و فایل های class. رو داخل یک فایل jar قرار دادیم و حالا می خواهیم که فایل jar رو اجرا کنیم.

 

در اینجا هم باید آدرس پکیج روت دایرکتوری رو بدیم به classpath تا مفسر جاوا بتونه فایل های class. رو پیدا کنه. در اینجا اگرچه ما پروژه ی خودمون رو به jar تبدیل کردیم، ولی ممکنه از کلاس هایی استفاده کنیم که خود اون کلاس ها در یک فایل jar دیگه قرار داشته باشند. در آن صورت، باید آدرس اون فایل jar رو بدیم به classpath

 

(ما حتی می تونستیم اون فایل jar رو که به عنوان لایبرری استفاده کردیم، در فایل jar خودمون embed کنیم)

 

پس میبینید که سناریو های مختلف و عجیب غریبی ممکنه پیش بیاد. در هر صورت یادتون باشه، مفسر جاوا باید بتونه فایل های  class. رو پیدا کنه.

در کجا سرچ میکنه؟ در پکیج روت دایرکتوری.

آدرس پکیج روت دایرکتوری رو به کجا باید بدیم؟ به classpath

 

 

خب، من فکر میکنم هر انچه لازم بود رو درباره مفسر جاوا به شما گفتم. در فصل سناریو های مختلفی رو بررسی میکنم.

 

 

بازگشت به فهرست اصلی

 

 

 


آخرین ارسال ها

آخرین جستجو ها