-classpath vs --class-path

Jonathan Gibbons jonathan.gibbons at oracle.com
Thu Jan 5 21:48:37 UTC 2017


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
>>
>>
>>
>



More information about the jigsaw-dev mailing list