JEP 330

Remi Forax forax at univ-mlv.fr
Thu May 31 20:36:48 UTC 2018



----- Mail original -----
> De: "Cay Horstmann" <cay.horstmann at sjsu.edu>
> À: "compiler-dev" <compiler-dev at openjdk.java.net>
> Envoyé: Jeudi 31 Mai 2018 18:30:56
> Objet: Re: JEP 330

> Hi Rémi,
> 
>> The JEP also said that it simplify the writing of small utility scripts  > and
>>   i think it is its major selling point.> There are a lot of
> scripts (bootstrap, build, deployment, continuous > testing scripts,
> etc) that should be written in Java instead of being > written in shell
> because Java is cross platform.
> I actually have a bunch of scripts that I wrote in Java (and then call
> from a shell script or alias). But the "single file" thing isn't as
> useful as it appears at first. Most of my scripts depend on some JAR
> (JavaMail, Commons CSV, ...).
> 
> With a Python script, you use pip to manage those dependencies, and in
> the script you just import them. In Java, the best I can do is rely on
> Maven/Ivy.

or just put the jar near the shebang file :)

> 
> Suppose I have a Java script that uses JavaMail and I want to give it to
> a colleague. Let's assume that the colleague knows how to fetch the
> dependencies into the Ivy cache. What would the shebang line look like?
> A classpath into ~/.ivy2??? I don't know how to do that cross platform.
> 
> Now THAT would be a great problem to solve in the launcher.

You create a ModuleLayer (or an URLClassLoader if you are not using modules), and load the jars you want.

> 
> Cheers,
> 
> Cay

Rémi


More information about the compiler-dev mailing list