Access properties outside executable jar

OK I have spent long and hard trying to figure out this jar system. I even created my little junk test
See executable http://homepage.ntlworld.com/jeff.burden/paulb/java/junk.jar (source code is in junk.jar)
My problem is this
/pjb/deployed/prog/program.jar
/pjb/deployed/prog/
/pjb/deployed/prog/res/test.jar
/pjb/deployed/prog/props/mainConfig.propertiesmyprogram.jar has the following in manifest
"class-path: res/ props/" test.jar contains
pjb/apps/progsub/res/myfirst.class
pjb/apps/progsub/res/myfirstConfig.properties
the program.jar can read the mainConfig.properties, but it cant read the test.jar's myfirstConfig.properties
    private static String getResource(String fc, String key, Locale  lc) {
            String out = java.util.ResourceBundle.getBundle(fc,lc).getString(key);
            return out;       
    String moduleName = getResource("pjb.apps.progsub.res.myfirstConfig","greeting",eng);myfirstConfig.properties contains
greeting=Hi from inside a Jar
I dont want to add test.jar to the class-path as I want to add more jar files
What am i doing wrong? I thought if i specifiy a directory in the classpath it will pick up all the resources in it.

The program works when it is not in a deployed environment. That is
When im developying in NetBeans I mount the directories required for the sourcode to run
Everything works fine.
But when i try and delopy the stuff as described above, i get them anoying
MissingResourceException Can't find bundle for base name pjb.apps.progsub.res.myfirstConfig, locale en

Similar Messages

  • How can I access EJB  through executable jar file?

    Hello buddies!!
    I wonder if anyone could give me an explanation of how accessing EJB through executable jar file?Thanks!!

    Hi there,
    You'll need to install the J2EE SDK on the client and include the <j2ee install dir>\lib\j2ee.jar file in your CLASSPATH along with the Client Jar file that was generated by the deploytool when you deployed the application.
    In your client code the Context properties are as follows:
    Properties p = new Properties();
    p.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.cosnaming.CNCtxFactory");
    p.put(Context.PROVIDER_URL, "iiop://hostname:portnumber");
    Context cntx = new InitialContext(p).Hope this helps
    Amanda
    Developer Technical Support
    Sun Microsystems
    http://www.sun.com/developers

  • How to access files outside a .jar file netbeans project

    Hi, i need to access a file outside a built project inside netbeans. Ideally i would like this file next to the .jar file as myapp.properties. If possible i would like it so that when i am compiling and running the project in netbeans the file can be with the class files or something along those likes. Either way it would be nice to have different code for built projects and just running them outside a jar.
    Heres what i got so far
    properties = new Properties();
                InputStream in = this.getClass().getResourceAsStream("applications.properties");
                properties.load(in);
                in.close();this only works if the file is next to the classes. (think thats called the classpath ? )
    Thanks for any replies!!

    Your wrong code:
    properties = new Properties();
    InputStream in
    = this.getClass().getResourceAsStream("applications.properties");
    properties.load(in);
    in.close();A right code:
    // basic assumption 1: applications.properties
    //  is a pure ISO 8859-1 text file
    // basic assumption 2: the file applications.properties
    //  is stored in the same directory where your
    //  jar file is stored
    properties = new Properties();
    try{
      FileInputStream in      // assume current dir
       = new FileInputStream("applications.properties");
      properties.load(in);
      in.close();
    catch (Exception e){
      e.printStackTrace();
    }

  • Accessing files outside the jar

    Greetings,
    I've got a jar file with some classes, which is in a directory. In this dir there are also some resources. How to access those resources from inside the jar?
    Thanks in advance,
    imaginner

    Try this...
    In your class, add this line...
    String path = System.getProperty("user.dir");
    it will give the path of the folder from which you are running
    your jar file. To this path, add your properties file name
    and start reading it.....
    For example:
    If i have a properties file which both :
    1) should be able to read and edit by users and
    2) should be accessible by classes in jar file....
    I would use the above concept like this.... in my class.....
    String path = System.getProperty("user.dir");
    Properties props = new Properties();
    props.load(new FileInputStream(path+"yourPropertiesFileName"));
    Hope it helps...
    Vijay

  • Access log4j.properties outside source folder

    Hi,
    I have developed a standalone java application, for logging the application i have created a log4j.properties in the source folder.
    it is woring fine and the logs are created as specified in the properties file.
    Issue:
    i have created a jar which contains the complete source code and log4j.properties file.
    if i try to create a jar without log4j.properties since the properties file will change by customer frequantly, i need to keep the log4j.properties outside the source folder.
    but my jar is unable to access the log4j.properties when i try to run the appplication.
    Question:
    how do we access the log4j.properties from outside source folder?
    thanks,
    J R

    gimbal2 wrote:
    T.PD wrote:
    In addition what gimbal2 sad: Do you create a MANIFEST.MF file in your jar?
    If so you should add (or extend) the ClassPath entry to include the current directory ( *.* ) so you can have the log4j.properties file in the folder where you call your jar from:[...]This is very dangerous. It makes the path not relative to where the jar is, but to where you invoke the java command.The OP's request is to have the (log4j) properties file outside of the jar maybe for easier editing.
    Adding any known folder in the file system to the class path is the only way I know to achieve this (Do you know better?). Folliwing this you could try to guess paths to add hoping that they will exist on all Systems you will use and place the properties file(s) there. On the other hane the current working dir the java command is invoked in is perdictable. Usually it's the directory the jar itself is located...
    I agree that this solution can be dangerous and opens the possibility to access classes located in a valid package structure below current working dir . But if you add the ' *.* ' as the last entry in your classpath at least the classes from all your other jars are accessed first...
    bye
    TPD

  • How can i access properties from APP server through JNLP with ot using JAR

    Hello
    i want to retrive a Properties file from WL-7 app installed location like :bea/home/externalized.properties
    now i want to use this properties file throgh out the application. if any property is changed in "externalized.properties" that could be reflect dynamically in my code.
    So my requirement is :
    The current implementaion is using the JNLP down load the required code which contains the properties in .jar files, i have around 500 properties which are embedded in differnet .jar files with differnt property name. So i want to make all 500 properties to get out side from the jar files. and keep that consolidated properties in a single location and access it dynamically after deployed my ear file in wl7 app server.
    my application is implemented in SWING and EJB now i want to create an ear file which can be deployed any instance or cluster of WL7 app server.
    My Q:
    1. How can i access properties file through JNLP? (not a single property, want to access all properties in externalized.properties)
    2. is thare any known issue with SUN to load properties file through JNLP?
    your help is highly appreciated.
    -Siva

    Hey Thanks for your response,
    My question is Still not answered,
    see infact i have different type of environments to launch my application.
    infact my weblogic is deployed at remote location whihch is installed in linux,
    code is exist in our local system.
    At the time of code build for my local system i'm not able to get the properties from remote WL server,
    so at the time of code compilation and making the EAR file i'm not having this externalized properties file in newly generated EAR file.
    so once i copied my EAR in to WL7 cluster and i'm running the application using startAdminserver.sh, in this script file i'm defining the
    java -DexternalizedProperty=$WL_HOME/externalizedProperty.properties so now i'm able to get this properties to 'externalizedProperty"
    But when i download my application required jars, at this time i does not having the property file in my downloaded JAR files.
    So i want to access the remote properties file in suh sistuation.
    now i'm runnig the application at my local side to launch and Server side as well.
    So i have 2 runtimes 1 is my local and another is my server. In this case using "-DexternalizedProperty" i'm able to get this in server side,
    once control is come to local system it is not able to find this "-DexternalizedProperty" [externalizedProperty].
    Hope now u get my scenario..
    Thanks,

  • NullPointerException while accessing .Properties from JAR

    Hi,
    I have created a JAR file which contains the .class as well as .properties in my application. Similarly when generating the JAR i have included the respective JAR's as well as the Main class of the app. in the Manifest.MF file.
    Below is the code i am using to load the properties from the LoggerConstants.
    if (properties == null) {
                   try {
                        properties = new Properties();
                        properties.load(Thread.currentThread().getContextClassLoader()
                                  .getResourceAsStream (LoggerConstants.LOGGER_PROPERTIES_PATH));
                        PropertyConfigurator.configure(properties);
                   } catch (IOException ioe) {
                        throw new LoggerException("unable to load file="
                                  + LOGGER_PROPERTIES_PATH, ioe);
    When i access the JAR in other app. by putting that in the build path, i am getting the following exception:-
    Exception in thread "main" java.lang.NullPointerException
         at java.util.Properties$LineReader.readLine(Properties.java:418)
    It seems that it is not able to pick the .properties which is there in the JAR file? But it is able identify the .class file?
    I tried by copying the same in the ANT Class path in eclipse, but still the problem persists. What i need to make sure that the .properties will be identified by the other app (App. 2)? Please shed some light into this.
    Thanks,
    Rithu

    Thanks Guys, the logger.properties will be under the classpath in the eclipse which will be under " src/com/example/logger.properties" directory. To brief , i am going to give this logger app. by compressing it in the JAR and will send to another machine , they need to use this JAR in their application and make use of the LogLevels i have created. The same will be done for other app. as well. So a Single Logger comp. which is build independently will be used by other standalone app. which needs to log the information.
    1) So, when i give the "LoggerComponent" JAR to other application. they should not modify any code (or create any classes) to use the .class or the .properties of the JAR?
    2) .class may not be a problem, but with .properties which may be a problem, hence are you saying that we need to load the logger.properties again in the referenced app. explictly, like wise do it for other app. which is going to use it? Because from my side i will give the Logger Comp. JAR to the other machines, just they need to use it as it is, without any modification in their code.
    3) Moreover when i create a JAR whether i need to package log4j.jar as well as other dependent JAR for the logger app.? So that the other reference app. dont have their own log4j.jar in their system to make use of it? Whether that makes sense or we should package a JAR with other JAR's(dependent JAR of the app.)?
    4) Ok. say if i am going to access the properties in my JAR in the reference app., like:-
    String sConfigFile = "src/com/example/logger.properties";
    InputStream in = LoggerTest.class.getClassLoader().getResourceAsStream(sConfigFile);
    if (in == null) {
         //File not found! (Manage the problem)
    Properties props = new java.util.Properties();
    props.load(in);
    LogManager logManager = new LogManager(); // Main class in the LoggerApplication JAR used in the reference app.
    logManager.logMessage("Test log msg");
    I will load properties and invoke the main class in JAR like above? Please clarify these queries. Thanks for the support
    Thanks,
    rithu

  • Executable Jars and their Classpath

    I have made a java application that takes requires several libraries to run. I am using netbeans 4.0 but have reached the stage where I'd like it to become a standalone application.
    I have editted the projects properties in netbeans to use the correct libraries for compilation and set the correct arguments to run it. It runs fine in netbeans. However, when i try to execute the jar file that netbeans generates with the command...
        java -jar  PeerPressure.jari get the error...
      Exception in thread "main" java.lang.NoClassDefFoundError: net/jxta/pipe/PipeMsgListenerI have tried to modify the manifest.mf file to (it has 2 enters at the end)....
    Manifest-Version: 1.0
    X-COMMENT: Main-Class will be added automatically by build
    Main-Class: Main
    Class-Path: /lib/jxta.jar /lib/bcprov-jdk14.jar /lib/javax.servlet.jar /lib/log4j.jar /lib/org.mortbay.jetty.jarbut i get the same error. I've also tried the command...
      java  -classpath \lib\jxta.jar;\lib\log4j.jar;\lib\bcprov-jdk14.jar; -jar PeerPressure.jarI'm not sure what else i could try. I've already looked through loads of tutorials and forums posts but still havent got any further. Any help would be great.
    Cheers

    Tried it and still no luck :(
    I tried executing the jar that netbeans 4.0 generates with a project that doesnt require the classpath to be set and that works fine. Also, looking at the stack trace, I've noticed that the executable jar file that i'm having problems with does actually execute. But when it reaches a class that implements the PipeMsgListener it stops.
    C:\Documents and Settings\Scottie\PeerPressure\dist>java -classpath ..\lib\jxta.
    jar;..\lib\log4j.jar;..\lib\bcprov-jdk14.jar;. -jar PeerPressure.jar
    Exception in thread "main" java.lang.NoClassDefFoundError: net/jxta/pipe/PipeMsg
    Listener
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(Unknown Source)
            at java.security.SecureClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$100(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClassInternal(Unknown Source)
            at peerpressure.Main.main(Main.java:26)i get the same error when i try
    java -jar PeerPressure.jarMy first thought was that the class that implements the PipeMsgListener was at fault. But when i run the project through netbeans it works fine!
    Not sure whats going on really. Does anyone know how to find out the command that netbeans is using to execute a project? If i could find out what it is i could use it to execute my jar.
    cheers :)

  • Creating executable jar from a project

    Dear all,
    I created a GUI project with ms-access as backend. now i want to create an executable jar out of these project(all classes). so any one please guide to achieve this. I am using netbeans 5.5.
    thank you,
    ishan

    From Projects window in netbeans, right click your project, and from context menu select Properties. From Project Properties Dialog
    highlight Run which in the left pane tree.
    on the right pane select the main class of your project by writting its complete package path in the field beside "Main Class:" label, or simply click "Browse..." to choose it.
    And have a nice time.
    Thanks.
    Ahmad Elsafty

  • Problems with CLASSPATH in a executable jar file

    Hi there
    I'm having a problem that I don't know how to solve. My generalq uestion is:
    "Why isn't my CLASSPATH (java.class.path) forwarded into ar unnable class inside a jar file?"
    The situation is:
    I have made a runnable jar file containing an ant build.xml file, a jar file containing some patch files, and a class called AntLoader.class. AntLoader are the file that are executed (inserted into the manifest). This works. The class are executed, but it can't find the package needed for starting ant.
    ant.jar is in my CLASSPATH, and therefore everything works fine if I'm running AntLoader outside the jar file.
    I know that I can use different ClassLoader classes for dynamicly loading of a class, but then I need a path to where ant.jar is located. And then again my system wont be general. The jar file is supposed to be distributed as a system patch to customers. And their location of where ant is installed will not be the same.
    So what I'm looking for is a way to pass my CLASSPATH from my environment on to a jar file. Is that possible?
    running java -classpath "${CLASSPATH}" -jar cpc.jar doesn't help at all. The java.class.path is still set to cpc.jar when I'm executing the AntLoader class inside cpc.jar.
    Can anyone please help me?
    Brgds
    Jakob

    've found the solution to the problem. You have to use the -Xbootclasspath/a parameter when running java.
    Example on unix:
    java -Xbootclasspath/a:${CLASSPATH} -jar test.jar
    Brgds
    Jakob

  • FileWriter in executable jar

    I have a problem to read/write textfiles inside an executable jar.
    The problem exists when the files are included in the jar.
    E.g. writing to files outside the jar is fine and currently my solution is to keep them that way.
    At first I also had a problem pointing to images in the
    jar-file but it worked with something like the following:
    img=java.awt.Toolkit.getDefaultToolkit().getImage(getClass().getResource("example.gif"));
    I tried the same approach to the FileReader like this:
    FileReader fr=new FileReader(getClass().getResource("example.dat").toString());
    The application compiles fine but does not find the file.
    Please share your expertise with me.

    You have to use external files or play with the java.util.jar package - there is not support for writing things directly to a jar in the java.io package.

  • Classpath is not working for executable jar file

    I have created executable jar file using following command where manifest file contains Main-Class and Class-Path entries.
    jar cvfm app.jar META-INF/* lib/* *.class
    So here app.jar contains my external jar's in lib directory
    but when I move app.jar to another directory, it's doesn't get my external files.
    I'm not getting this problem as these jar's are in app.jar
    class-path entry in manifest file:
    Class-Path: lib/abc.jar lib/xyz.jar
    Pls help me where it is getting fail?
    Thanks in advance,
    Vikas

    Java doesn't handle jars within jars. Your library jars need to be outside of the executable jar as in
    dist - main.jar
          - lib  -  lib1.jar
                 -  lib2.jar

  • PLEASE HELP. How do you access properties files in WEB-INF  and classes directory

    We have a war file that needs to access properties files that are in the WEB-INF directory
    of the war file. We also need to load one of the properties files from the classpath.
    However, when we deploy the application ( an ear which inlcludes an ejbjar and a
    war and the libraries both the ejbjar (with a manifest setting the classpath ) and
    war need ) the properties don't get extracted.
    In some of our servlets we are trying to access those files with the path "WEB-INF/foo.properties"
    and we get a FileNotFoundException. Then we check and see that NO properties files
    have been extracted into their appropriate places ( not even those we throw into
    the WEB-INF/classes directory ).
    PLEASE HELP,
    Christian Hargraves

    The file doesn't have to be extracted from the war. For example, you can place
    test.properties into your app WEB-INF and write a simple JSP to see how it
    works:
    <%
    InputStream in = application.getResourceAsStream("/WEB-INF/test.properties");
    %>
    It will return you a zip inputstream if you deployed your application as a .war.
    Christian Hargraves <[email protected]> wrote:
    I try this, but I get a NullPointerException. The file never actually gets extracted
    from the war. Under tomcat and resin this works great ( that's why I am having all
    of the trouble i am having ), but there are absolutely no properties files in the
    extracted directories for WebLogic deploys. only:
    WEB-INF/some_tmp_dir/WEB-INF/lib
    and then some dynamically generated jor file with all of the classes that would normally
    go in WEB-INF/classes ( all except the properties, of course, which are no where
    to be found. ).
    There has to be some kind of setting I am missing. Please don't make me seperate
    these properties files from the war/ear and then put the path to these properties
    files in the CLASSPATH, changing one step to three steps to deploy!!
    I have found a documented bug where you can't even put the properties files in a
    jar file and that bug will never be fixed for WebLogic 6.1.
    "Dimitri I. Rakitine" <[email protected]> wrote:
    To access files in WEB-INF you can use ServletContext.getResourceXXX("/WEB-INF/filename")
    Christian Hargraves <[email protected]> wrote:
    We have a war file that needs to access properties files that are in theWEB-INF directory
    of the war file. We also need to load one of the properties files fromthe classpath.
    However, when we deploy the application ( an ear which inlcludes an ejbjarand a
    war and the libraries both the ejbjar (with a manifest setting the classpath) and
    war need ) the properties don't get extracted.
    In some of our servlets we are trying to access those files with the path"WEB-INF/foo.properties"
    and we get a FileNotFoundException. Then we check and see that NO propertiesfiles
    have been extracted into their appropriate places ( not even those wethrow into
    the WEB-INF/classes directory ).
    PLEASE HELP,
    Christian Hargraves--
    Dimitri
    Dimitri

  • Executable JAR witn anoter JAR

    Hello, I need some help to be able to create an Executable JAR from a project containing already one JAR
    Here is the situation :
    I've made a program who acceses Oracle DB and therefore I have integrated an External JAR (ojdc14_g.jar) in my project so I can get access to the classes needed to synchronize with the DB.
    I'm using Eclipse so I was able to generate automatically an auto-executable JAR. But the problem is that obviously the import statement :
    import oracle.jdbc.*;
    that I'm using to access the classes in the oracle External JAR is not undersood by the auto-executable JAR and I get :
    A fatal exception occured - Program will Exit
    Anyone an idea ??
    PS: the generation of auto-executable JAR with eclipse works perfectly with my other projects
    I'm using j2sdk 1.4.2.05
    Thanks in advance

    Hi guys!
    Sorry for the dot, I had missed that :(
    But still doesn't work.....
    I have been trying the following :
    Class-Path: . ./JarLibrary/ojdbc14_g.jar
    Class-Path: . /JarLibrary/ojdbc14_g.jar
    Class-Path: . JarLibrary/ojdbc14_g.jar
    Class-Path: . .\JarLibrary\ojdbc14_g.jar
    Class-Path: . \JarLibrary\ojdbc14_g.jar
    Class-Path: . JarLibrary\ojdbc14_g.jar
    and even
    Class-Path: . .JarLibrary.ojdbc14_g.jar
    Class-Path: . JarLibrary.ojdbc14_g.jar
    But I always get NoClassDefFoundError
    any ideas ? Could it be my java version ? I'm working with 1.4.2_05
    or any other ideas to be able to double-click on a Icon to run an Java application ?
    Hope I can give you those 10 Dukes soon

  • How to read a file outside my .jar

    Hello!
    I have my j2me application in a .jar file , and my application needs to read a .txt file which is outside my .jar but in the same directory.
    I tried to do :
    InputStream input = getClass().getResourceAsStream("/myfile.txt");
    as well as
    InputStream input = getClass().getResourceAsStream("myfile.txt");
    but nothing is working...
    Could you help me, please??? I'm getting crazy with this :(
    Thanks in advance!

    Thanks sabre150,
    sabre150 wrote:
    You cannot update a running jar file. I am sorry. I didn't know about it. Thanks to point out.
    There are two ways I approach this depending on my exact requirements -
    1) use the java.util.prefs.Preferences APII will try this one
    >
    2) if not already present I copy the preferences file from the jar to a known place. I use a directory in the user's home directory and normally make the directory name the program with a '.' prefix.
    One cannot access files in a jar file using the File API. One needs to use the getResource() or getResourceAsStream() methods on Class or ClassLoader.

Maybe you are looking for

  • Deafening Digital Noise After Mixdown of a 5.1 Bus

    I'm having some issues that have just cropped up when I try to 'multitrack mixdown' a bus from my film project. This .sesx session originally was imported from a Premiere project. The project is about 90mins in length and I am trying to export multip

  • Problem in booting after bios update

    Originally, it was windows home basic was installed in my laptop. But recently I had installed Windows professional. After installation I have downloaded all drivers which are compatible for my laptop model. After BIOS update installation my pc is no

  • How do I restrict Select-option values to those founn in a Z table?

    Hello friends, I would like to display and restrict values for a select-option to those found in a Z table. That is to say, the user is only able to choose those values found in the Z table and not otherwise. How to do this please? Thank you for your

  • Interactive videos

    I am interested in making interactive videos and distributing them on different platforms (computer download, tablets, smartphones). What software package(s) would be best for me? Would an interactive video created with the adobe package(s) work on a

  • After new download, Safari and Itunes not working?

    So the other day my dad ran the updates on my MacBook and ever since then my internet is not working on either Safari or Itunes. I can connect to the internet on Firefox though. I am on 10.4.11 if that helps. Any suggestions? Thanks in advance.