classpath

Michel Trudeau michel.trudeau at oracle.com
Tue Feb 14 17:55:20 UTC 2017


I would go for such an improvement.   Please file an RFE.
-- 
Michel



> Peter Levart <mailto:peter.levart at gmail.com>
> February 12, 2017 at 1:09 PM
>
>
>
>
> No, perhaps not. But it would perhaps be nice to have some kind of 
> platform-independet way to expand either current Java system 
> properties or process environment variables (or both) in arguments of 
> jshell's slash-commands. So one could do for example:
>
> jshell> /env --class-path {user.home}/JavaLibs/guava-21.0.jar
> |  Setting new options and restoring state.
>
> jshell> /env
> |     --class-path /home/peter/JavaLibs/guava-21.0.jar
>
>
>
> Regards, Peter
>
> Peter Levart <mailto:peter.levart at gmail.com>
> February 12, 2017 at 12:57 PM
> Hi,
>
>
>
> The problem seems to be the tilde "~" character you used to specify 
> the path to the jar file. For example:
>
> jshell> /env --class-path ~/JavaLibs/guava-21.0.jar
> |  Setting new options and restoring state.
>
> jshell> /env
> |     --class-path ~/JavaLibs/guava-21.0.jar
>
> jshell> import com.google.common.base.Function;
> |  Error:
> |  package com.google.common.base does not exist
> |  import com.google.common.base.Function;
> |         ^-----------------------------^
>
>
> ...but...
>
> jshell> /env --class-path /home/peter/JavaLibs/guava-21.0.jar
> |  Setting new options and restoring state.
>
> jshell> /env
> |     --class-path /home/peter/JavaLibs/guava-21.0.jar
>
> jshell> import com.google.common.base.Function;
>
> jshell>
>
>
> The "tilde" character is usually expanded by a UNIX shell:
>
>  bash$ echo ~
> /home/peter
>
> ...but jshell seems to interpret it literally.
>
> Should jshell treat and expand /env arguments according to the rules 
> of native shells on the corresponding platforms? For example, should 
> it expand %VARIABLE% on Windows and ${VARIABLE} or $VARIABLE on UNIX-es ?
>
> Regards, Peter
>
> Michael Müller <mailto:michael.mueller at mueller-bruehl.de>
> February 12, 2017 at 7:03 AM
> Hi,
>
>
> formerly I could use
>
> /classpath 
> ~/Dropbox/Vortrag/ParallelStreams/ParallelStreams/target/ParallelStreams.jar 
>
> |  Path '~/Dropbox/Vortrag/ParallelStreams/ParallelStreams/target/
>        ParallelStreams.jar' added to classpath
> jshell> import de.muellerbruehl.parallelstreams.PersonManager
>
>
> SInce this has become /env, I have trouble with it:
>
> jshell> /env -class-path 
> ~/Dropbox/Vortrag/ParallelStreams/ParallelStreams/target/ParallelStreams.jar 
>
> |  Setting new options and restoring state.
>
> jshell> /env
> |     --class-path 
> ~/Dropbox/Vortrag/ParallelStreams/ParallelStreams/target/ParallelStreams.jar 
>
>
> jshell> import de.muellerbruehl.parallelstreams.PersonManager
> |  Error:
> |  package de.muellerbruehl.parallelstreams does not exist
> |  import de.muellerbruehl.parallelstreams.PersonManager;
> |         ^--------------------------------------------^
>
> Although /env displays the added classpath, it is not recognized.
> To add a classpath, I have to leave the shell and restart it with the 
> classpath option.
> And btw. the doc states a directory will be accepted as classpath. But 
> I always have to add the fully qualified name of the jar. The 
> directory only does not work :(
>



More information about the kulla-dev mailing list