Nicolai,

We've identified the cause of the issue you reported. Although javac accepts --class-path as an alias for -cp and -classpath, what is notable about your example is that it is using "classpath wildcards" (i.e. the "*" in -cp "mods/*"), which is implemented within the native javac launcher, and not in the mainstream javac code. And yes, in the code in question, --class-path is not supported, and probably should be.

Filed: https://bugs.openjdk.java.net/browse/JDK-8172309

-- Jon

On 01/05/2017 08:33 AM, Jonathan Gibbons wrote:
Thank you for the report. It is obviously intended that these options should simply be aliases for each other, but I will see if there is something else going on to explain what you are seeing.

-- Jon


On 1/5/17 3:23 AM, Nicolai Parlog wrote:
  Hi,

during experimentation I encountered compiler behavior that I found
rather strange: It looks like the -classpath and --class-path options do
not behave the same way.

In my experiment I create a bunch of modules in 'mods' and then create
the last one by putting the modules on the class path (no reason, just
playing around):

     javac -cp "mods/*" -d classes/advent src/advent/advent/Main.java

This works and '-classpath' does, too, but '--class-path' doesn't. In
that case the compiler complains that the packages contained by the
modules in 'mods' do not exist.

For an executable version see here:

https://github.com/CodeFX-org/demo-jigsaw-advent-calendar/blob/compiling-with-deps-as-modules/compileAndRun.sh#L41-L48

I noticed this on b146 but it also exists in b148; both EA-Jigsaw builds.

  so long ... Nicolai





Reply via email to