اگر در دهههای ۲۰۰۰ یا ۲۰۱۰ از رایانهای ویندوزی استفاده کرده باشید، احتمالاً جاوا از آن نرمافزارهایی بود که مدتها پیش از آنکه دلیل حضورش را بدانید، میشناختید. بازیها نصبش را میخواستند، برنامههای کاری به آن وابسته بودند، مرورگرها مدام درباره افزونههایش هشدار میدادند و هر از گاهی نیز آن بهروزرسان کوچک در سینی سیستم پدیدار میشد و توجه میطلبید.
Java eventually faded from everyday view, but the technology itself never followed as plenty of software still depends on it today. Modern applications have simply gotten much better at bringing along the Java components they need without making you manage them separately.
ماشین مجازی جاوا، لایه اجرایی میان نرمافزار و رایانه شماست
واسطهای که واقعاً به کار میآید

Java is a programming language, although the Java Virtual Machine, or JVM, is the part doing much of the work once a Java program starts running on your computer. Developers write Java source code and compile it into an intermediate form called bytecode. If source code, compilers, and executables still feel a little abstract, the basics of coding and programming are a good primer on how those pieces connect.
در جاوا، بایتکد حاصل معمولاً در پروندههای .class ذخیره میشود؛ پروندههایی که JVM میتواند آنها را بارگذاری و اجرا کند. مشخصات JVM شرکت Oracle، قالب پرونده کلاس را قالبی دودویی و مستقل از سختافزار و سیستمعامل تعریف میکند. همین ویژگی به یکی از بزرگترین برتریهای جاوا تبدیل شد، زیرا توسعهدهندگان میتوانستند بهجای بازسازی یک برنامه برای تکتک سیستمعاملها و معماریهای پردازندهای که قصد پشتیبانی از آنها را داشتند، JVM را هدف بگیرند. کافی بود در سوی دیگر، محیط اجرایی سازگاری برای جاوا فراهم شود تا بخش بزرگی از همان کد نیز بیدردسر همراه برنامه اجرا شود؛ قابلیتی که Sun Microsystems آن را با شعار مشهور «یکبار بنویس، همهجا اجرا کن» معرفی کرد.
کار JVM نیز بسیار فراتر از رساندن بایتکد به پردازنده است. این ماشین کلاسها را بارگذاری میکند، حافظه را مدیریت میکند، جمعآوری زباله را انجام میدهد، بخشهایی از رفتار جاوا را هنگام اجرا اعمال میکند و حتی میتواند در حین اجرای برنامه، بایتکدهای پرکاربرد را به دستورهای بومی ماشین تبدیل کند. مجموعه این کارها محیطی مدیریتشده در اختیار برنامههای جاوا میگذارد که بسیاری از امور زیربنایی و نگهداری در آن از پیش سامان یافتهاند.
دو سرواژه قدیمی جاوا نیز روشن میکنند که چرا نصب آن در گذشته بیدلیل گیجکننده به نظر میرسید. JRE بهطور سنتی اجزای لازم برای اجرای برنامههای جاوا را فراهم میکرد، درحالیکه JDK کامپایلر و دیگر ابزارهای توسعه موردنیاز برای ساخت آن برنامهها را نیز در بر داشت. Oracle از JDK ۱۱ به بعد، عرضه جداگانه JRE و Server JRE را متوقف کرد؛ در عوض، برنامههای امروزی جاوا میتوانند همراه با محیط اجرایی ویژهای عرضه شوند که دقیقاً بر پایه نیازهای همان برنامه ساخته شده است. برای نمونه، ابزار jpackage شرکت Oracle میتواند برنامههایی خودبسنده بسازد که محیط اجرایی جاوای موردنیازشان را نیز درون خود دارند.
JavaScript برخلاف آنچه نامش القا میکند، زبان برنامهنویسی کاملاً متفاوتی است. این دو، تاریخچه، محیط اجرایی و کاربردهای رایج جداگانهای دارند و با بررسی تفاوتهای Java و JavaScript روشن میشود که شباهتشان چندان از ظاهر نامها فراتر نمیرود.
جاوایی که از وب به یاد دارید، تقریباً منقرض شده است
دوران افزونههای مرورگر فرجام خوشی نداشت





پررنگترین خاطرات من از جاوا هیچ ارتباطی با جمعآوری زباله یا بایتکد قابلحمل ندارند. وبسایتهایی را به یاد میآورم که پیش از انجام هر کار کموبیش جالبی، از من میخواستند افزونهای نصب کنم.
Java applets let websites download and run small Java programs inside the browser. They appeared in games, educational software, business portals, and plenty of odd web utilities that needed capabilities browsers couldn't easily provide on their own at the time.
مشکل این بود که اپلتها به معماری افزونهای مرورگر وابسته بودند؛ معماریای که هم از نظر امنیت و هم نگهداری، روزبهروز دردسرسازتر میشد. مرورگرها بهتدریج NPAPI، یعنی همان سامانه افزونهای مورد اتکای جاوا، را کنار گذاشتند. Firefox در نسخه Firefox ۵۲ و در سال ۲۰۱۷ پشتیبانی عمومی از افزونههای NPAPI را حذف کرد؛ Chrome و دیگر مرورگرهای بزرگ نیز پیشتر این فناوری را کنار گذاشته بودند. Oracle نیز بعدها افزونه جاوا، Java Web Start، Java Control Panel و فناوریهای مرتبط با استقرار را از JDK ۱۱ حذف کرد.

بنابراین، نصب جاوا روی یک رایانه امروزی نمیتواند Chrome، Edge یا Firefox را وادار کند اپلت جاوای یک وبسایت باستانی را دوباره زنده کنند. جاوایی که بسیاری از مردم از وب به یاد دارند، متعلق به الگوی مرورگریای است که عملاً دیگر وجود ندارد.
Java carried on perfectly well outside the browser. Minecraft: Java Edition is probably the most recognizable consumer example, while Java remains heavily used in backend services, business software, developer tooling, and server applications. You can still set up a Minecraft Java Edition server today.

نرمافزارهای توسعه نمونه خوب دیگری به دست میدهند. IntelliJ IDEA بر پایه جاوا ساخته شده است، اما JetBrains این محیط توسعه را همراه با محیط اجرایی اختصاصی مبتنی بر OpenJDK عرضه میکند؛ بنابراین میتوانید برنامه را نصب کنید و بیآنکه ابتدا بهدنبال نصب جداگانه و سراسری جاوا بگردید، کارتان را آغاز کنید.
Android نیز جایی در شجرهنامه جاوا دارد، هرچند با نگاهی به سازوکارهای درونی، این رابطه پیچیدهتر میشود. برنامههای Android میتوانند از قابلیتهای زبان Java بهره ببرند، اما ابزارهای ساخت Android بایتکد Java را به بایتکد DEX تبدیل میکنند؛ کدی که بهجای JVM مرسوم رایانههای رومیزی، در Android Runtime یا ART اجرا میشود.
پیش از حذف جاوا، ببینید چه برنامهای آن را دعوت کرده است
Java may have roommates

آیا در سال ۲۰۲۶ واقعاً لازم است جاوا بهصورت سراسری روی یک رایانه معمولی ویندوزی نصب باشد؟ در بسیاری از موارد، نه. پرسش مهم این است که آیا نرمافزارهای مورد استفاده شما واقعاً به آن وابستهاند یا خیر.
برای اینکه ببینید خط فرمان در حال حاضر چه اطلاعاتی از جاوا دارد، Windows Terminal، PowerShell یا Command Prompt را باز کنید و فرمان زیر را اجرا کنید:
java -versionshows the version reported by the Java executable Windows currently resolves.- فرمان
where.exe javaفایلهای اجرایی Java را نشان میدهد که Windows میتواند در پوشهٔ کنونی و پوشههای فهرستشده در PATH پیدا کند.
اگر java -version اطلاعات نسخه را نمایش دهد، یعنی Windows میتواند از مسیر معمول جستوجوی فرمانها به یک فایل اجرایی Java دسترسی پیدا کند. اگر فرمان شناخته نشود و where.exe java هم چیزی نیابد، Java از راه پوشهٔ کنونی یا PATH در دسترس نیست. این وضعیت بهخودیخود مشکلی ایجاد نمیکند و اگر همهٔ نرمافزارهایتان بهدرستی کار میکنند، لازم نیست فقط برای اجرای این فرمانها Java را نصب کنید.
پیدا کردن java.exe در بخش دیگری از رایانه نیز دلیل خوبی برای حذف دستی فایلها نیست. بهتر است نسخههای مستقل Java را با فرایند معمول حذف برنامه در Windows پاک کنید و مدیریت فایلهای موجود در پوشهٔ هر برنامه را به خود آن برنامه بسپارید.

نصب بودن چند نسخهٔ Java نیز لزوماً نشانهٔ وجود مشکل نیست. ممکن است یک برنامهٔ تجاری قدیمی همچنان به Java ۸ وابسته باشد، درحالیکه برنامهای دیگر نسخهای بسیار تازهتر بخواهد. تا اکتبر ۲۰۲۶، Java ۲۷ تازهترین انتشار ویژگیمحور و Java ۲۵ جدیدترین انتشار با پشتیبانی بلندمدت است؛ بااینحال، نصب نسخهای که بزرگترین شماره را دارد تضمین نمیکند همهٔ برنامههای Java روی رایانهتان با آن سازگار باشند.
بااینهمه، نسخههای قدیمی نصبشده ارزش بررسی دارند. سالهایی که Java افزونهٔ مرورگر داشت، لطمهٔ بزرگی به آوازهٔ امنیتی آن زد؛ زیرا محتوای مخرب وب میتوانست با کد آسیبپذیر افزونه ارتباط برقرار کند. Java امروزی از آن الگوی مرورگرمحور فاصله گرفته است، اما یک محیط اجرای قدیمی یا بدون پشتیبانی همچنان ممکن است آسیبپذیریهای شناختهشده داشته باشد و دیگر اصلاحیههای امنیتی دریافت نکند.
اگر برنامهای به Java نیاز دارد، نسخهای را به کار ببرید که سازندهٔ آن پیشنهاد کرده است و مطمئن شوید آن محیط اجرا همچنان پشتیبانی میشود. اگر هیچیک از برنامههای رایانهتان به نسخهٔ مستقل Java نصبشده در Windows وابسته نیست، حذف آن اقدامی کاملاً منطقی برای پاکسازی سیستم است.
بهترین جاوا همان است که حضورش را بهندرت حس کنید
Java is still humming along underneath plenty of applications and services, even as the browser plugins, tray icons, and updater nags that once made it impossible to ignore have mostly disappeared from everyday PC use.
این روزها بیشتر مردم تنها زمانی لازم است به Java فکر کنند که برنامهای مشخص دلیلی برایش پیش پایشان بگذارد. احتمالاً این شیوه برای همه بهتر است.
منبع: این مطلب ترجمه و بومیسازی مقالهای از MakeUseOf به قلم Oluwademilade Afolabi است. مشاهده مقاله اصلی