java jar invocation

Kevin Downey redchin at gmail.com
Mon Sep 21 22:43:41 UTC 2009


-cp and -jar are mutually exclusive.

On Mon, Sep 21, 2009 at 2:53 PM, Ronald Klop
<ronald-freebsd8 at klop.yi.org> wrote:
> On Mon, 21 Sep 2009 23:09:19 +0200, grarpamp <grarpamp at gmail.com> wrote:
>
>>> BTW, Azureus (Vuze) is also in ports. Also you might want to
>>> install java/jdk16 instead of diablo-jre16
>>
>> I figure it's better for me to learn the hard way before trying
>> ports. The goal is openoffice. Yeah, hard :)
>>
>> So I found the commons here and pulled the jar file out of it:
>>
>>  http://apache.mirrors.redwire.net/commons/cli/binaries/commons-cli-1.2-bin.zip
>>  commons-cli-1.2.jar
>>
>> Then ran this simple thing again:
>>  java -cp `pwd`/commons-cli-1.2.jar -jar `pwd`/Azureus4.2.0.8.jar
>>
>> And I got the same error. But the access time on commons-cli-1.2.jar
>> wasn't bumped, so I ktrace'd it.
>>  5987 java     NAMI  "/.../commons-cli.jar"
>>
>> Playing along and dropping the apparently unneeded -cp arg, I get:
>>  ln -s commons-cli-1.2.jar commons-cli.jar
>>  java -jar `pwd`/Azureus4.2.0.8.jar
>>  Exception in thread "main" java.lang.NoClassDefFoundError:
>> org/apache/log4j/Layout
>>
>> So after downloading and symlinking log4j, this simplification works:
>>  java -jar Azureus4.2.0.8.jar --ui console
>>
>>
>> The closest I can get so far to having the libs in one dir without
>> symlinks and calling the app from elsewhere is to hunt up Main-Class
>> in [Thanks AR]:
>>  unzip Azureus4.2.0.8.jar META-INF/MANIFEST.MF
>> then run:
>>  java -cp `pwd`/jarz/\*:`pwd`/Azureus4.2.0.8.jar
>> org.gudy.azureus2.ui.common.Main --ui console
>> or move azureus into jarz and run:
>>  java -cp `pwd`/jarz/\*
>> org.gudy.azureus2.ui.common.Main --ui console
>> or:
>>  java -cp jarz/\*:Azureus4.2.0.8.jar
>> org.gudy.azureus2.ui.common.Main --ui console
>>
>>
>> The -jar style of that does not work:
>>  java -cp jarz/\*:Azureus4.2.0.8.jar -jar Azureus4.2.0.8.jar
>>  Exception in thread "main" java.lang.NoClassDefFoundError:
>> org/apache/commons/cli/ParseException
>>
>> I was eventually hoping for something like:
>>  java -cp /usr/local/jarz -jar /usr/local/bin/app.jar
>>
>>
>>> you are now running a jre compiled for FreeBSD-7.0
>>
>> Yes. Hopefully we'll have a current java from the foundation for
>> 8.0 when it comes out.  And to keep current I want to figure out
>> how to build from Sun's java sources sometime. If that doesn't
>> work, I'll try ports.
>
> You have to add all jars to the classpath explicitly. You can't specify a
> directory with jars or use *.
> This is the easiest way I know.
>
> for i in /usr/local/jarz/*.jar; do
>  CLASSPATH="$CLASSPATH:$i"
> done
> java -cp "$CLASSPATH" -jar foo.jar
>
> Ronald.
> _______________________________________________
> freebsd-java at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-java
> To unsubscribe, send any mail to "freebsd-java-unsubscribe at freebsd.org"
>



-- 
And what is good, Phaedrus,
And what is not good—
Need we ask anyone to tell us these things?


More information about the freebsd-java mailing list