2016-07-19 1 views
1

この呼び出しが機能します。javaagentオプションはチルダを展開しませんが、なぜそうではありませんか

java -ea -cp ~/Documents/workspace/export/testProject1/"*" -javaagent:/home/jack/Documents/workspace/export/testProject1/SizeOf.jar testProject1.Tester

この呼び出しは失敗します。

java -ea -cp ~/Documents/workspace/export/testProject1/"*" -javaagent:~/Documents/workspace/export/testProject1/SizeOf.jar testProject1.Tester

失敗は次のようになります。

Error opening zip file or JAR manifest missing : 
    ~/Documents/workspace/export/testProject1/SizeOf.jar 
    Error occurred during initialization of VM 
    agent library failed to init: instrument 

なぜ-javaagentオプションは、チルダ(~)を展開するために失敗しません。これはLinux上にあった。

答えて

1

チルダは、実行中のプログラムではなくシェルによって展開され、トークンの先頭にはありません。代わりに"$HOME"を使用してください。

+0

これとは対照的に、-classpathまたは-cpには、トークンの先頭にチルダが付いた引数があるため、シェルはそれを見て展開します。ありがとう。 – H2ONaCl

関連する問題