make check fails in [build JCS]

Stephan Bergmann sbergman at redhat.com
Mon Sep 3 15:23:44 UTC 2018


On 29/08/18 11:43, Noel Grandin wrote:
> On 2018/08/29 11:06 AM, Stephan Bergmann wrote:
>> investigating deeper into the issue.  (Apparently, Java no longer 
>> accepts file:... URLs there, at least on Windows, and won't accept 
>> full pathnames starting with a drive letter like C:/..., but does 
>> accept ("drive-absolute") pathnames like /...; so my hack should work 
>> as long as your files are on drive C.)
>>
> 
> That probably needs whatever magic will convert a cygwin path into a 
> DOS/NT path i.e. something starting with
> 
>     C:\
> 
> (note the backslash instead of a forwardslash)

No, things unfortunately appear to be more broken than that (at least 
with JDK 10.0.2):

* Using C:\foo\bar.jar pathnames in a jar's manifest class-path doesn't 
work (and 
<https://docs.oracle.com/javase/10/docs/specs/jar/jar.html#class-path-attribute> 
does require those values to be "relative URLs").  At java run-time 
(e.g., when executing a JunitTest), resolving classes via that 
class-path entry apparently fails.

* Likewise when using C:/foo/bar.jar pathnames.

* Using file:/C:/foo/bar.jar URLs in a jar's manifest class-path would 
work at run-time.  However, when that jar is then mentioned in the 
-classpath argument of some javac invocation at build time, that 
invocation fails with "error: illegal argument for --class-path: Illegal 
char <:> at index 4: file:/C:/..."

* The only working hack I found for now is to use /foo/bar.jar 
drive-relative pathnames, which happen to also match the syntax of 
relative URLs.


More information about the LibreOffice mailing list