Updated Scala modularization and classpaths (markdown)

eugene yokota 2019-04-18 11:33:52 -04:00
parent 93eb3f5648
commit 5995679f04
1 changed files with 3 additions and 1 deletions

@ -6,7 +6,9 @@ Scala modularization makes it necessary to deal with some existing issues that m
The term "boot classpath" comes from Java's Bootstrap Classes, which are the classes that implement the Java Platform. By default, bootstrap classes are in the `rt.jar` and several other jar files in the `jre/lib` directory according to [How Classes are Found](https://docs.oracle.com/javase/8/docs/technotes/tools/findingclasses.html). The term "boot classpath" comes from Java's Bootstrap Classes, which are the classes that implement the Java Platform. By default, bootstrap classes are in the `rt.jar` and several other jar files in the `jre/lib` directory according to [How Classes are Found](https://docs.oracle.com/javase/8/docs/technotes/tools/findingclasses.html).
The Scala compiler has `-javabootclasspath <path>` flag to override Java boot classpath. I assume the intent is to allow overriding classes in Java standard library. `javac` supports programmers wanting to resolve boot class (or extension class) references using an alternative Java platform implementation by providing `-bootclasspath` options.
The Scala compiler also provides `-javabootclasspath <path>` flag to override Java boot classpath.
For the Java boot classpath, the `scala` script justs puts everything in `lib/` on it. For the Java boot classpath, the `scala` script justs puts everything in `lib/` on it.
This is not the right thing to do because it makes classes not on the user's classpath available. This is not the right thing to do because it makes classes not on the user's classpath available.