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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

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

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین ubuntu24

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
سلام
من برای تنظیم یک نرم افزار در ابونتو کد زیر رو ( که باید توی کامنت پرامپت ویندوز نوشت ) باید به ترمینال بهفمونم :

C: \ WINDOWS \ system32 \ java.exe-cp microemulator.jar; lib/microemu-jsr-75.jar org.microemu.app.Main org.microemu.cldc.file.FileSystem org.microemu.examples.fcview-impl . FCViewMIDlet apps \ java_apps.jad
فقط اینو متوجه شدم که برای قسمت اول میشه چنین نوشت :

java -jar microemulator.jar
اگه کسی میدونه بگه این قسمت دومی چی میگه اصلا ...

آفلاین بهروز رمضانی

  • High Hero Member
  • *
  • ارسال: 1111
  • جنسیت : پسر
  • Kakashi Hatake
    • ابونتو نیوز
سلام
این نرم افزار چی هست . میکرو املیتور اگر اشتباه نکنم یه شبیه ساز روی گوشی N900 بود که باهاش میشد فایهایی با فرمت jar را اجرا کرد !!
در یادگیری و استفاده از خط فرمان کوشا باشید چرا که رستگاری شما در آن است.

آفلاین سار

  • Newbie
  • *
  • ارسال: 24
سلام
من برای تنظیم یک نرم افزار در ابونتو کد زیر رو ( که باید توی کامنت پرامپت ویندوز نوشت ) باید به ترمینال بهفمونم :

C: \ WINDOWS \ system32 \ java.exe-cp microemulator.jar; lib/microemu-jsr-75.jar org.microemu.app.Main org.microemu.cldc.file.FileSystem org.microemu.examples.fcview-impl . FCViewMIDlet apps \ java_apps.jad
فقط اینو متوجه شدم که برای قسمت اول میشه چنین نوشت :

java -jar microemulator.jar
اگه کسی میدونه بگه این قسمت دومی چی میگه اصلا ...

این کد اجرا کردن یک برنامهٔ جاواست. قسمت اول رو فکر نمی‌کنم درست گفته باشی، در مجموع هم اونقدر فاصله توی کد بود که سخته کد نهایی رو بهت بگم ولی اینطور بگم که:
java -classpath 'lib1:lib2:..' package.main.class apps arguments
که برای شما فکر می‌کنم کد این بشه:
java -classpath 'microemulator.jar:lib/microemu-jsr-75.jar' org.microemu.app.Main org.microemu.cldc.file.FileSystem org.microemu.examples.fcview-impl.FCViewMIDlet apps/java_apps.jad
در ضمن یه طور نوشته بودی «سوال از کسایی که خیلی توی ترمینال واردن» که من فک کردم که وای، الان با یه شل اسکریپت خفن طرفم

آفلاین ubuntu24

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
سلام
این نرم افزار چی هست . میکرو املیتور اگر اشتباه نکنم یه شبیه ساز روی گوشی N900 بود که باهاش میشد فایهایی با فرمت jar را اجرا کرد !!

حالا دقیقا این گوشی که می گید نیس ولی فایل های JAVA ME رو باز می کنه ...

این کد اجرا کردن یک برنامهٔ جاواست. قسمت اول رو فکر نمی‌کنم درست گفته باشی، در مجموع هم اونقدر فاصله توی کد بود که سخته کد نهایی رو بهت بگم ولی اینطور بگم که:
java -classpath 'lib1:lib2:..' package.main.class apps arguments
که برای شما فکر می‌کنم کد این بشه:
java -classpath 'microemulator.jar:lib/microemu-jsr-75.jar' org.microemu.app.Main org.microemu.cldc.file.FileSystem org.microemu.examples.fcview-impl.FCViewMIDlet apps/java_apps.jad
در ضمن یه طور نوشته بودی «سوال از کسایی که خیلی توی ترمینال واردن» که من فک کردم که وای، الان با یه شل اسکریپت خفن طرفم

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

در کل بگم کدتون کار نکرد ...

آفلاین سار

  • Newbie
  • *
  • ارسال: 24
سلام
این نرم افزار چی هست . میکرو املیتور اگر اشتباه نکنم یه شبیه ساز روی گوشی N900 بود که باهاش میشد فایهایی با فرمت jar را اجرا کرد !!

حالا دقیقا این گوشی که می گید نیس ولی فایل های JAVA ME رو باز می کنه ...

این کد اجرا کردن یک برنامهٔ جاواست. قسمت اول رو فکر نمی‌کنم درست گفته باشی، در مجموع هم اونقدر فاصله توی کد بود که سخته کد نهایی رو بهت بگم ولی اینطور بگم که:
java -classpath 'lib1:lib2:..' package.main.class apps arguments
که برای شما فکر می‌کنم کد این بشه:
java -classpath 'microemulator.jar:lib/microemu-jsr-75.jar' org.microemu.app.Main org.microemu.cldc.file.FileSystem org.microemu.examples.fcview-impl.FCViewMIDlet apps/java_apps.jad
در ضمن یه طور نوشته بودی «سوال از کسایی که خیلی توی ترمینال واردن» که من فک کردم که وای، الان با یه شل اسکریپت خفن طرفم

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

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

آفلاین ubuntu24

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
اون کامند ویندوزی، ترجمش می‌شه این. خیلی هم اگر نگاه کنی فرقی نداره. ممکنه من توی تایپ اشتباه نوشته باشم.
جسارت نباشه‌ها، آدرس فایل‌ها رو درست وارد می‌کنی؟
[/quote]
آره حدودا چهار ساعتی توی ترمینال باهاش ور رفتم ، شما می دونید دقیقا چه کاری انجام می ده اون کد؟میشه بیشتر توضیح بدین ؟ (آخه توش سمیکالنه ولی شما نقله قول گذاشتین نمی دونم اینا واسه چی تغییر کردن !!)

آفلاین سار

  • Newbie
  • *
  • ارسال: 24
اون کامند ویندوزی، ترجمش می‌شه این. خیلی هم اگر نگاه کنی فرقی نداره. ممکنه من توی تایپ اشتباه نوشته باشم.
جسارت نباشه‌ها، آدرس فایل‌ها رو درست وارد می‌کنی؟
آره حدودا چهار ساعتی توی ترمینال باهاش ور رفتم ، شما می دونید دقیقا چه کاری انجام می ده اون کد؟میشه بیشتر توضیح بدین ؟ (آخه توش سمیکالنه ولی شما نقله قول گذاشتین نمی دونم اینا واسه چی تغییر کردن !!)

بله، این کد ویندوزی برای اجرا کردن یک برنامهٔ جاواست.
برنامه‌های جاوا وقتی که ترجمه می‌شن، یک زبون میانی رو می‌سازن، این در حالیه که زبون‌هایی مثل سی و سی‌پلاس‌پلاس، کد محلی (نیتیو، کد قابل فهم برای مجموعهٔ سیستم‌عامل و ماشین) رو می‌سازن. برای همین وقتی یک برنامهٔ سی رو کامپایل می‌کنید برای گنو/لینوکس، روی لینوکس (کرنل) اجرا می‌شه ولی همون کد روی همون معماری ماشین با سیستم‌عامل دیگه اجرا نمی‌شه. یا مثلن کدی که برای معماری arm کامپایل می‌شه، روی x86 با همون سیستم‌عامل اجرا نمی‌شه.
اینا رو گفتم که بگم زبون میانی جاوا چیه. کامپایلر جاوا میاد و بایت‌کد رو تولید می‌کنه، این بایت‌کد برای اجرا نیاز به یک ماشین مجازی داره تا اجرا بشه. این ماشین مجازی خودش از کد نیتیو ماشین (مثلن x86 روی گنو/لینوکس) ساخته شده و وظیفش اجرای اون کد میانی روی روی ماشین واقعیه.

دستوری java این ماشین مجازی رو فراخونی می‌کنه.

از یک منظر دیگه، وقتی برنامه‌ای با جاوا کامپایل می‌شه، فایل‌هایی با پسوند class رو تولید می‌کنه که تعدادشون زیاده و البته آدرس پوشه‌ای که توش قرار داره هم خیلی مهمه که در حقیقت می‌شه آدرس بسته (package) اون کلاس. برای همین معمولن بعد از کامپایل، این class ها رو بسته‌بندی و گاهی فشرده می‌کنن که نتیجش مثلن می‌شه jar که اگر با دستوری مثل:
jar xvf file.jarاون فایل رو باز کنی، متوجه تمام این توضیحات می‌شی.

در نهایت هر برنامه ممکنه از کتابخونه‌هایی برای طراحی استفاده کرده باشه که وقت اجرا به اون کتابخونه‌ها نیاز داره. برای همین مفهومی بنام classpath وجود داره که به ماشین مجازی می‌گه که کتابخونه‌های مورد نیاز برنامه از کجا بارگذاری بشه.

و در نهایت آدرس متد اصلی برنامه (معروفه به public static void main) باید به ماشین مجازی فرستاده بشه. ممکنه این کار به صورت دستی صورت بگیره، یا با یک سری تعریف، توی jar فایل موجود باشه.

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

اما سوالی که پرسیدین، چرا توی ویندوز «;» گذاشته می‌شه، توی گنو/لینوکس «:»
خب در مورد classpath گفتم. ممکنه نیاز باشه از چند آدرس مختلف کلاس‌ها بارگذاری بشه، که اینطور مواقع باید با یک مکانیسمی به ماشین مجازی این اطلاع داده بشه. تا اونجا که یادمه ویندوز آدرس‌های مختلف رو با «;» از هم جدا می‌کنه و اگر توی یه برنامه توی دیالوگ باز کردن فایل، چندین فایل انتخاب بشه، می‌بینید که با «;» از هم جدا کرده (این قسمتش به جاوا ربطی نداره). توی گنو/لینوکس از «:» استفاده می‌شه. پس هرجا این‌ها بکار برده شده، نشون دهندهٔ بکار رفتن چند آدرسه.

در نهایت اگر می‌خوای دقیق‌تر متوجه بشی، این رو ببین:
https://en.wikipedia.org/wiki/Classpath_(Java)