Java command line option using @ symbol
When invoking the 'java' process, I'm almost certain there is a way to have Java expand the contents of a file into a set of additional command-line arguments using the "@开发者_开发知识库" symbol.
Something like:
java @myfile -cp foo -Dbar=baz com.mydomain.MyApp
And then the contents of "myfile" will be used as additional parameters.
It doesn't seem to work, but I'm certain that something very similar used to work. I've searched high and low but can't find anything on the InterNETs to help. Its driving me nuts! Someone please refresh my memory or lock me up.
It's probably the compiler you're thinking of:
javac [ options ] [ sourcefiles ] [ classes ] [ @argfiles ]
http://java.sun.com/javase/6/docs/technotes/tools/solaris/javac.html
I've never seen anything like that in any JVM I've used.
Are you sure it wasn't a specific Java application, e.g. Ant or something similar?
@ doesn't mean anything from the Java perspective. However in a DOS .BAT file it indicates that the files contained in the referenced file will be used.
e.g. DEL @FILENAME.TXT
means that DOS will delete the files listed in FILENAME.TXT
I suspect that's what you're thinking of.
java VM takes options outlined in this document. I may be wrong but I never see anything what you described. So it could be something to do with shell you are using
Shell expansion is to what you're referring?
jvmargs=-Xmx786m -Dfoo=bar
java $jvmargs com.foo.Bar
.
set jvmargs=-Xms786m -Dfoo.bar
java %jvmargs% com.foo.Bar
It is a quite common practice/convention, but I believe you have to implement it yourself (ie. get the filename, open it, read and parse it...).
精彩评论