We have found it to be very robust to bring along all needed jars along with
each installation in a subfolder next to the jar, and refer to them using
relative paths in the manifest (runnable/executable jars) or full paths e.g.
to the system installation of jt400.jar. This complete separation also
allows to maintain one program without fearing for disturbing others. The
extra disk space is a cheap price to pay for that (it was worse when the JVM
generated MI-instructions corresponding to the Java classes and hid them
along with the jar file - those could grow quite big).

If you _really_ want to have a centralized location for jars, be sure to
include a version number in the jar file names when you put them there.
Eventually you will end in a situation where you need different versions for
different programs, and you cannot do that in a single shared location
without version numbers. You might consider using Maven or Apache Ivy to
refer to Maven artifacts where this is an integral part.

/Thorbjørn



-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx [mailto:java400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Dan Kimmel
Sent: 30. maj 2013 15:50
To: Java Programming on and around the IBM i
Subject: RE: .jar/.tar file question #2

Java resources are usually grouped by the application that uses them and it
is not uncommon to see the same jar duplicated in a lot of paths. A jar file
isn't overly large, so this usually isn't a problem. If you have large jars
that you want to share, put them in a common folder and put symlinks to them
in the path that belongs to your application. Maybe call that common folder
/JavaTools/.

Many applications have their own classloader which follows different rules.
The default jvm classloader loads classes from class files and jar files
listed in the classpath variable. Tomcat, for instance, has it's own
classloader which loads classes from specific paths within each webapp
branch under the overall catalina_home path. It's important to read the
documentation for whatever application you're working. POI doesn't do
anything special, I don't think.

-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx [mailto:java400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Gary Thompson
Sent: Thursday, May 30, 2013 8:10 AM
To: Java Programming on and around the IBM i
Subject: RE: .jar/.tar file question #2

Charles,
I thought of that, and wondered about "best practices" or "traditions"
for storing additional java resources.

Will others find my changes easy to understand and follow ?

Maybe put POI and such under /JavaTools/ ?

-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx [mailto:java400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Charles Wilt
Sent: Thursday, May 30, 2013 6:25 AM
To: Java Programming on and around the IBM i
Subject: Re: .jar/.tar file question #2

There's really no need to use /QOpenSYs/QIBM/...

You could simply create a folder off the root, /POI

Charles


On Wed, May 29, 2013 at 7:04 PM, Gary Thompson <gthompson@xxxxxxxxxxx>wrote:

Dan,
I can barely spell Java, so I really appreciate the advice, and,
unfortunately, don't grasp the meaning of your FWIW comments, but am
keeping your post with the thought that the meaning will emerge in
time.

This is the path where I *think* I want to create the directory you
suggest:

/QOpenSys/QIBM/UserData

So, if the new directory is POI, then:

/QOpenSys/QIBM/UserData/POI

And class path:

/QOpenSys/QIBM/UserData/POI/poi-thing-1.jar
/QOpenSys/QIBM/UserData/POI/poi-thing-2.jar
. . .
/QOpenSys/QIBM/UserData/POI/poi-thing-6.jar

Hmm, my class path example looks ridiculous.


-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx [mailto:
java400-l-bounces@xxxxxxxxxxxx] On Behalf Of Dan Kimmel
Sent: Wednesday, May 29, 2013 3:24 PM
To: Java Programming on and around the IBM i
Subject: RE: .jar/.tar file question #2

You really don't want those in Java400/ext. That's where java
extensions go. Java extensions are not subject to the same kind of
security checks as normal jars and it is really hard to override jars
in that path. For the most part, only security extensions to java should
go in the ext path.

Create a directory in the IFS and put all your POI jars in there. When
you start your RPG program, make sure the classpath includes a full
path to
*EACH* jar.

FWIW, depending on what operating system you're using, java will
reside in either /QIBM/ProdData/Java400 or
/QOpenSys/QIBM/ProdData/Java. All the J9 JVM's live only in QOpenSys.

-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx [mailto:
java400-l-bounces@xxxxxxxxxxxx] On Behalf Of Gary Thompson
Sent: Wednesday, May 29, 2013 3:32 PM
To: Java Programming on and around the IBM i
Subject: .jar/.tar file question #2

I think I now have the .jar files I need (thanks Gary and Darren) and
I think these need to be copied to: /QIBM/UserData/Java400/ext

But only have /QIBM/UserData/ but no Java400/ext

Do I just create these directories/folders ?
--
This is the Java Programming on and around the IBM i (JAVA400-L)
mailing list To post a message email: JAVA400-L@xxxxxxxxxxxx To
subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/java400-l.



--
This is the Java Programming on and around the IBM i (JAVA400-L)
mailing list To post a message email: JAVA400-L@xxxxxxxxxxxx To
subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/java400-l.



--
This is the Java Programming on and around the IBM i (JAVA400-L)
mailing list To post a message email: JAVA400-L@xxxxxxxxxxxx To
subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at
http://archive.midrange.com/java400-l.


--
This is the Java Programming on and around the IBM i (JAVA400-L) mailing
list To post a message email: JAVA400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/java400-l.



--
This is the Java Programming on and around the IBM i (JAVA400-L) mailing
list To post a message email: JAVA400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/java400-l.



--
This is the Java Programming on and around the IBM i (JAVA400-L) mailing
list To post a message email: JAVA400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/java400-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2021 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.