Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Sep 2009 23:53:55 +0200
From:      "Ronald Klop" <ronald-freebsd8@klop.yi.org>
To:        grarpamp <grarpamp@gmail.com>, freebsd-java@freebsd.org
Subject:   Re: java jar invocation
Message-ID:  <op.u0mm35uh8527sy@82-170-177-25.ip.telfort.nl>
In-Reply-To: <d2e731a10909211409y61963fe6mb00df6c2a1a8c57@mail.gmail.com>
References:  <d2e731a10909202352g2b13f2e7q73e5a249022fd129@mail.gmail.com> <200909211306.31039.pieter@degoeje.nl> <d2e731a10909211409y61963fe6mb00df6c2a1a8c57@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 21 Sep 2009 23:09:19 +0200, grarpamp <grarpamp@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=
 =20
directory with jars or use *.
This is the easiest way I know.

for i in /usr/local/jarz/*.jar; do
   CLASSPATH=3D"$CLASSPATH:$i"
done
java -cp "$CLASSPATH" -jar foo.jar

Ronald.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.u0mm35uh8527sy>