- Modular Programming in Java 9
- Koushik Kothagal
- 415字
- 2021-07-02 18:38:24
Revisiting classpath
We've seen that the new Java 9 platform comes with some new abilities to do module level compilation and execution using the --module-source-path and the --module-path arguments. It is now module-aware and knows what to do in order to compile and execute Java 9 modules. It's very likely that these flags are going to find increased usage as developers embrace Java modularity.
At the same time, there's a familiar compiler parameter that will, over time, see decreased usage--the -classpath parameter. The classpath that has been a concept that's essential to programming in Java for so many years, is for the most part, not required anymore!
For about two decades now, the Java classpath has played the crucial role of being the home for all the classes in any given Java application. Any Java application is obviously made up of multiple classes, often in multiple jar files. As a Java developer, all you had to do to get a class into play was to add it to the classpath. That would guarantee that the runtime would see it. Of course, there are still access modifiers such as private, public, and protected that control who gets to access a given Java type. But still, the presence of a class file in a classpath was all it took to make it available to the runtime.
Now, consider the new world where there are no standalone class files and everything is made up of modules. A Java 9 modular application is comprised of a number of different modules that have dependency on one another. Given the module paths, the compiler and runtime can now know where all the classes are. Also, thanks to the module convention, the classes that belong to the module reside in the module folder itself. In this case, why does Java need any other information to access the classes required for an application? The concept of a classpath isn't even needed anymore!
Wait! Before you let go of everything you've learned about classpaths from your memory, I should let you know that what I'm describing is the ideal scenario. Yes, ideally, classpath will likely hold lesser importance in Java in the future. However, we are still not done with it yet. We will be revisiting classpaths a few times in this book, especially in the context of working with older codebases and when migrating code to Java 9. More on that in Chapter 10, Preparing Your Code for Java 9 .
- 劍指Offer(專項突破版):數(shù)據(jù)結(jié)構(gòu)與算法名企面試題精講
- PHP+MySQL網(wǎng)站開發(fā)項目式教程
- 可解釋機(jī)器學(xué)習(xí):模型、方法與實踐
- Hands-On Functional Programming with TypeScript
- Arduino家居安全系統(tǒng)構(gòu)建實戰(zhàn)
- C++從入門到精通(第5版)
- Web前端應(yīng)用開發(fā)技術(shù)
- uni-app跨平臺開發(fā)與應(yīng)用從入門到實踐
- 監(jiān)控的藝術(shù):云原生時代的監(jiān)控框架
- Scratch從入門到精通
- 視窗軟件設(shè)計和開發(fā)自動化:可視化D++語言
- Microsoft Exchange Server 2016 PowerShell Cookbook(Fourth Edition)
- Python繪圖指南:分形與數(shù)據(jù)可視化(全彩)
- ASP.NET Core 2 High Performance(Second Edition)
- Advanced C++