Date: prev next · Thread: first prev next last
2018 Archives by date, by thread · List index


On 12/11/2018 10:38, Stephan Bergmann wrote:
On 03/09/2018 17:23, Stephan Bergmann wrote:
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.

(see also the recent discussion at <https://gerrit.libreoffice.org/#/c/63118/> "Simplify and fix Java UNO API test makefiles")

(...and <https://bugs.documentfoundation.org/show_bug.cgi?id=121925> "Fix Java Jar dependency classpath to pass the ClassPathURLCheck")


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.