Accessing a Derby database inside of a Jar file...

Hello,
I've browsed many threads that touch on aspects of this topic, but I still can't seem to figure this out. Here is my dilemma:
[1] I have a simple application that stores some data using JavaDB.
[2] Everything works fine when I bundle the app into a jar, as long as I leave my Database folder outside the jar
[3] If I include the DB in the jar the app does not see it.
[4] I can't just leave the folder outside the jar because I eventually plan on deploying the app as a Web Start program.
The Dev guide on JavaDB says +"A database can be in one of many locations: in the current working directory, on the classpath, in a JAR file..."+, and this apparently can be set using the derby.system.home property. I currently use the following to set this property: System.setProperty("derby.system.home", ".myDatabase"); How would I need to change this to allow the app to find the database inside the jar? If this requires the DB to be read-only (which is fine with me), what properties need to be set to designate the DB as such?
Any input would be greatly appreciated.

Well, upon rereading the Derby Developer's Guide I found the information I sought in the section "Creating Derby databases for read-only use" (p.34-37). I'm still not 100% sure about how to do the Web Start implementation, but this should put me on the right track.
[UPDATE IN CASE ANYONE STUMBLES UPON THIS THREAD] It seems that the issue with Web Start is that the database needs to be access a writable location for the temporary directory, so I presume web start would have to request disc-access privileges... something I'm trying to avoid.
Edited by: CommanderSalamander on Nov 9, 2007 10:06 AM

Similar Messages

  • Including a jar file inside an executable jar file

    Is it possible to include a jar file inside another (executable) jar file such that the included file is part of the class path for the outer file? If so, how do you specify this in the classpath in the manifest?

    Russ_Bjork wrote:
    Is it possible to include a jar file inside another (executable) jar file such that the included file is part of the class path for the outer file?No. Actually, I suppose it would be possible if you do all the 'heavy lifting', but Java is not designed to handle Jars within Jars.
    What do you see as the advantage of doing that?
    Is your app. a rich client (e.g. Swing, AWT, SWT..)?
    Can you distribute the app. from a server or the internet?

  • Referencing a jre installation inside of a jar file

    Hi,
    I wrote a a small program that executes a JRE.exe installation when executed.
    My problem is that I can't figure out how to reference the JRE installation that I've packaged inside of the Jar file.
    I know that this must have a simple answer but I haven't been able to find one in the tutorials.
    Any help would be apreciated.

    You can't do that. How can expect to execute code in a jar file when the JRE that is needed is IN that jar file? You either have to:
    1) Install the JRE prior to calling your applet or application or
    2) If this is an applet on a webpage, you can run your HTML thru SUN's Htmlconverter which sets up the tags correctly and provides for automatic download of the JRE at runtime.

  • Finding class inside of the jar file...

    Hi,
    please could someone explain me, what is the difference between this object mapping...
    env->FindClass("com/dir1/dir2/ClassA");
    and
    env->FindClass("Lcom/dir1/dir2/ClassA;");
    because if class 'ClassA' resides inside of the jar file, which is appended to the classpath, Lcom/dir1/dir2/ClassA; don't succed and FindClass returns NULL!!!!
    Instead of if i use 'com/dir1/dir2/ClassA' string FindClass method ends with success....
    But i don't understand this...i was wondering that all my objects, not default java objects, should be mapped as L<class>;....:-((
    Please heellp

    I have noticed that a class have several notations which have been brough together of late. Even ObjectOutputStream write both java.lang.String and java/lang/String, arrays appear as [Ljava.lang.String; and the code will decode Ljava.lang.String; correctly even though it will not get generated.
    It is possible that this historical discrepencies are more visable at the native level and are yet to be fixed up ????                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • How to load a xml file from a package inside of a jar file

    hi@all
    my application has got a xml configuration file which is saved inside the package tree of the class that reads this file.
    when i`m developing using eclipse the class can find that file, everything works fine. but when i create a jar file of my application to use it in another application it cannot find that file anymore.
    can anyone tell me how to solve this problem, please?
    thx a lot
    dialsc

    hi all,
    the xml file is in the jar file and
    ClassLoader.getSystemResourceAsStream(..) solved my problem.
    in fact i did nameOfClassInSamePackageAsXmlFile.class.getResourceAsStream("nameOfFile.xml");thank you all
    greez
    dialsc

  • Connecting to a database inside a JAR?

    Hi,
    Can I do the following:
    Connect to flatfile database inside the same jar as my program? i.e., would something along the lines of:
    jdbc:jar://db.txt
    work? And if so, what would be the correct way to do it, other than my horrible example above. If so, what database/jdbc driver can i use for it?
    Thanks in advance for all help!
    Stu

    You could retrieve the data but your gonna have problems when it comes time to update.

  • Can't load sql file from inside jar file?

    hi all
    i have a sql file inside my jar file
    and i want to get the path of the sql file to use it in runtime command to restore a sql dump file
    i used the following but it doesn't work:
    the path contains invalid characters such %20% instead of and?
    URL url2=getClass().getResource("backup.sql");
    String str1=url2.toString().substring(10);
    String command="cmd.exe /c  c:\\wamp\\mysql\\bin\\mysql -u root --password=anasa library < "+str1;       
    Runtime.getRuntime().exec(command);is this way is wrong?
    or there's an alternative way?

    How is the system to pull the data out of the jarfile?
    That redirection symbol means to take the information from the file, or here document, or command output that comes after it, but you don't have any of those. It will read that String as if it is a file name, but a file under that name doesn't exist. And, after you've changed it like you have, it doesn't even reference anything inside of a jar file anymore (not that the command could have used that anyway).
    If you insist on doing something like this, then you are going to need to read it with getInputStream and write it out somewhere (probably to a temp file) then use that tempfile and delete it when you're done.

  • Jar Files in a Jar File - Classpath Error

    Hi,
    I created a jar file that will have all the class files of the application. In the manifest file class path, I have the jar files the application is dependent on. The dependent jar files were kept outside of the application jar file. I was able to execute the main file in the application jar file. Then I created another jar file that holds all the dependent jar files the application is dependent on along with the application jar file into one super jar file. configured the main class attribute of the super jar file to that in the application jar file. When I try to execute it, I'm getting an error saying Class Not Found. Can someone guide me in setting the classpath for this super jar file in its manifest file.
    Presently my manifest file classpath variable in the super jar file is set as App.jar Depend1.jar Depend2.jar
    Thanks,
    E H

    Java's standard class loaders do not support jar files inside of other jar files, and will give the error you see.
    You can write your own customized class loader, use a 3rd-party solution (onejar at sourceforge is one), or remove the interior jars.

  • Images in Jar files

    Hi,
    I am creating a recipe book application. Everything is exactly how I want to so I am trying to make a jar file with it.
    On the first screen that loads there is one image, when I make the jar file it doesn't seem to be able to find the image once I am outside of eclipse and running the jar.
    I have created a folder in called resources in my scr folder (src/resources) this is where I am storing the image.
    The method near the bottom (private void addPic()) is where I am having troubles.
    package recipe1_5;
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
    import java.io.*;
    import javax.imageio.*;
    import java.awt.image.*;
    * This provides an entry point into the program
    * as well as the first window
    * the main() function is at the bottom
    public class Main implements ActionListener {
         JFrame f = new JFrame();
         Container p = f.getContentPane();
         JButton newR = new JButton("Add a New Recipe");
         JButton oldR = new JButton("Look Up An Old Recipe");
         JLabel title = new JLabel("Please make a selection");
         public void actionPerformed(ActionEvent e){
              String whichButton = e.getActionCommand();
              if(whichButton.equals("Add a New Recipe")){
                   @SuppressWarnings("unused")
                   Recipe newRecipe = new Recipe();
                   f.setVisible(false);
                   f.dispose();
              if(whichButton.equals("Look Up An Old Recipe")){
                   @SuppressWarnings("unused")
                   OldRecipeChooser orc = new OldRecipeChooser();
                   f.setVisible(false);
                   f.dispose();
         }//END actionPerformed
         public Main(){
              f.setSize(200,300);
              f.setLocation(500,100);
              f.setTitle("Recipe Magic");
              p.setLayout(new FlowLayout());
              p.add(title);
              p.add(newR);
              p.add(oldR);
              newR.addActionListener(this);
              oldR.addActionListener(this);
              addPic();
              f.setVisible(true);
              f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         }//END contr ChooseWindow()
         private void addPic(){
              try{
                   String imgLocal = System.getProperty("user.dir");
                   if(System.getProperty("os.name").contains("Windows")){
                        imgLocal += "\\RecipeMagic1_5.gif";
                        JOptionPane.showMessageDialog(null, imgLocal);
                   else
                        imgLocal += "/RecipeMagic1_5.gif";
                   BufferedImage image = ImageIO.read(new File(System.getProperty("user.dir" + imgLocal)));
                   JLabel pic = new JLabel(new ImageIcon(image));
                   p.add(pic);
              catch(Exception e){
                   JOptionPane.showMessageDialog(null, "Image Load Error","ERROR", JOptionPane.ERROR_MESSAGE);
                   e.printStackTrace();
         public static void main(String args[]){
              Main m = new Main();
    }//END class ChooseWindowI have tryed this two different ways. The first how it is. And the second with something like this:
    ImageIcon ii = new ImageIcon(getClass().getResource("resources/RecipeMagic1_5"));Any insight on how to get the image from inside of the jar file would be great
    Forgot to add, it either throws a NullPointerException or a FileNotFoundException in the catch clause of addPic()
    Edited by: tyelford on Dec 15, 2010 11:46 AM

    Ok, so it works good on Mac, but if I try to use it on Windows it will not load the image,
    Here is the code that works on Mac but not windows:
    private void addPic(){
              try{
                   String imgLocal = System.getProperty("user.dir");
                   if(System.getProperty("os.name").contains("Windows")){
                        imgLocal = "resources\\RecipeMagic1_5\\RecipeMagic1_5.gif";
                   else
                        imgLocal = "resources/RecipeMagic1_5/RecipeMagic1_5.gif";
                   ImageIcon ii = new ImageIcon(getClass().getResource(imgLocal));
                   JLabel pic = new JLabel(ii);
                   p.add(pic);
              catch(Exception e){
                   JOptionPane.showMessageDialog(null, "Image Load Error","ERROR", JOptionPane.ERROR_MESSAGE);
                   e.printStackTrace();
         }I get an Image Load Error on Windows, but the same file on Mac runs perfect

  • How do I import classes in a jar file?

    I have the following directory structure, each directory is a seperate package of the same name as the directory
    RPGUniversal
    RPGMap
    RPGCharacter
    RPGCharacter is not done yet so I am ignoring that package for now.
    RPGCharacter and RPGMap both depends on classes inside the RPGUniversal Package, but are independant of eachother and RPGUniversal is completely independant.
    I want to place each package in it's own .jar file for use as a library in later programs.
    I placed all the compiled classes for RPGUniversal inside the proper directory structure, I then used this command to place it in a jar:
    jar -cf ./RPGUniversal.jar ./RPGUniversal/*
    I then tested the contents with this command:
    exodist@Abydos:/stuff/JProject/test$ jar -tf RPGUniversal.jar
    META-INF/
    META-INF/MANIFEST.MF
    RPGUniversal/ADTs/
    RPGUniversal/ADTs/t1.jpg
    RPGUniversal/ADTs/t2.jpg
    RPGUniversal/ADTs/t3.jpg
    RPGUniversal/ADTs/t4.jpg
    RPGUniversal/ADTs/Coordinates.class
    RPGUniversal/ADTs/RPGImage.class
    RPGUniversal/ADTs/FrameSet.class
    RPGUniversal/ADTs/ImageTester.class
    RPGUniversal/Exceptions/
    RPGUniversal/Interfaces/
    RPGUniversal/Interfaces/RPGCharacter.class
    RPGUniversal/Interfaces/RPGItem.class
    RPGUniversal/Interfaces/RPGObject.class
    RPGUniversal/Interfaces/Trackable.class
    RPGUniversal/Interfaces/Tracker.class
    RPGUniversal/Interfaces/RPGMapComponent.class
    RPGUniversal/Interfaces/RPGMap.class
    so far all good, next I delete the RPGUniversal directory leaving the only file in the current directory RPGUniversal.jar
    next I create the RPGMap directory and give it the proper .java files and directory tree.
    I then run a script to compile every .java file
    for i in `find ./ -name "*.java"`; do javac "$i"; done
    and I get a ton of dependancy errors:
    exodist@Abydos:/stuff/JProject/test$ for i in `find ./ -name "*.java"`; do javac "$i"; done
    ./RPGMap/BaseClasses/StaticMap.java:13: package RPGUniversal.Interfaces does not exist
    import RPGUniversal.Interfaces.*;
    ^
    ./RPGMap/BaseClasses/StaticMap.java:20: cannot resolve symbol
    symbol : class RPGMap
    location: class RPGMap.BaseClasses.StaticMap
    public abstract class StaticMap implements RPGMap
    ^
    ./RPGMap/ComponentClasses/MapTile.java:9: package RPGUniversal.Interfaces does not exist
    import RPGUniversal.Interfaces.*;
    ^
    ./RPGMap/ComponentClasses/MapTile.java:10: package RPGUniversal.ADTs does not exist
    import RPGUniversal.ADTs.*;
    ^
    ./RPGMap/ComponentClasses/MapTile.java:16: cannot resolve symbol
    symbol : class RPGObject
    location: class RPGMap.ComponentClasses.MapTile
    public class MapTile implements RPGObject
    ^
    ./RPGMap/ComponentClasses/MapTile.java:19: cannot resolve symbol
    symbol : class RPGImage
    location: class RPGMap.ComponentClasses.MapTile
    private RPGImage MyImage;
    ^
    ./RPGMap/ComponentClasses/MapTile.java:31: cannot resolve symbol
    symbol : class Coordinates
    location: class RPGMap.ComponentClasses.MapTile
    public boolean CheckForCollision(Coordinates C)
    ....the list goes on........
    how do I tell it to look inside the RPGUniversal.jar file to find the required classes?
    here is a directory tree so you can see how it is set up:
    ls -R1
    RPGMap/
    RPGUniversal.jar
    ./RPGMap:
    BaseClasses/
    ComponentClasses/
    ExternalInterfaces/
    HigherClasses/
    InternalInterfaces/
    ./RPGMap/BaseClasses:
    StaticMap.java
    ./RPGMap/ComponentClasses:
    MapTable.java
    MapTile.java
    TableList.java
    TileSet.java
    ./RPGMap/ExternalInterfaces:
    ./RPGMap/HigherClasses:
    DynamicMap.java
    ./RPGMap/InternalInterfaces:

    The JAR file needs to be in the compliers classpath : javac -classpath "$CLASSPATH:RPGUniversal.jar" "$i"

  • EJB 3.0: deployment/jar file generation issue

    We have a web application project (ADF Faces) which depends on a model project (EJB 3.0 session/entity beans) that implements both business and persistence layers. This EJB project points to a utility jar file containing some classes we have built. When we run the web project from inside JDev, everything works perfectly, with no error. However, when generating EAR file (deploying web project to WAR) we experience an issue.
    As expected, JDev generated the war file for the web app, the jar file for the EJB and finally the EAR file containing both war and jar files. After that, we managed to deploy the ear file to our OAS 10.1.3 test instance (not standalone OC4J) and an error occured. The error is due to the fact JDev did not create the /lib subdirectory inside ejb project jar file /META-INF directory with our utility jar file inside.
    We tried to generate a separated jar file for the ejb project alone with the same results.
    Is this an IDE bug which does not pack the application as it should? What could we be doing wrong? If yes, is there a work-around? Like I said, the application runs fine on embedded server. Also, when the EJB application does not depend on external libraries, the deployment to OAS 10.1.3 works perfectly. We have tested it!
    Could anyone help us?
    Thanks in advance.
    Best Regards,
    Gustavo
    PS: Sorry for my English. :)

    Hi Shay! I follow what you said and it worked. However, we had to manually edit MANIFEST file for the EJB jar in order to add classpath clause to map our util jar. IMHO, JDev should do it for us. Anyway, we were able to deploy the app successfully.
    Best Regards,
    Gustavo

  • How to get InputStream in jar file

    Could anyone give me a tip how I can play this sound file inside the application jar file?
    I have this package: *{color:#0000ff}com.sikgraf.ui{color}*
    with *{color:#ff6600}ArquivoMagneticoUI.class{color}* and {color:#ff6600}*applause.au*{color}
    I am tyring to get the InputStream but It's being painful and so far no success
    Here are the 3 ways I tried:
    InputStream is = ArquivoMagneticoUI.class.getResourceAsStream("applause.au");
    is = getClass().getResourceAsStream("applause.au");
    is = this.getClass().getClassLoader().getResourceAsStream("applause.au");All them return:
    java.lang.NullPointerException
            at java.io.FilterInputStream.mark(FilterInputStream.java:175)
            at com.sun.media.sound.WaveFileReader.getFMT(WaveFileReader.java:241)
            at com.sun.media.sound.WaveFileReader.getAudioInputStream(WaveFileReader.java:160)
            at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1094)What I am doing wrong?

    Thanks for your reply, I just figured out using URL:
        public static void playSound(int index) {
            String files[] = {"applause.au", "cash_register.au", "ding.au", "donkey_1.au", "duck_1.au", "siren_2.au"};
            String sound = "som/" + files[index];
            try {
                URL url = ArquivoMagneticoUI.class.getResource(sound);
                AudioInputStream ain = AudioSystem.getAudioInputStream(url);
                AudioFormat format = ain.getFormat();
                if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
                    format = new AudioFormat(
                            AudioFormat.Encoding.PCM_SIGNED,
                            format.getSampleRate(),
                            format.getSampleSizeInBits() * 2,
                            format.getChannels(),
                            format.getFrameSize() * 2,
                            format.getFrameRate(),
                            true);        // big endian
                    ain = AudioSystem.getAudioInputStream(format, ain);
                DataLine.Info info = new DataLine.Info(Clip.class, ain.getFormat(), ((int) ain.getFrameLength() * format.getFrameSize()));
                Clip clip;
                clip = (Clip) AudioSystem.getLine(info);
                clip.open(ain);
                clip.start();
            } catch (LineUnavailableException ex) {
                //Logger.getLogger(ArquivoMagneticoUI.class.getName()).log(Level.SEVERE, null, ex);
            } catch (UnsupportedAudioFileException ex) {
                //Logger.getLogger(ArquivoMagneticoUI.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                //Logger.getLogger(ArquivoMagneticoUI.class.getName()).log(Level.SEVERE, null, ex);
        }

  • Zip/jar files...

    I am writing an application that uses a JEditorPane to display HTML pages. I want to let the user plug-in their own pages using a zip or jar file...i.e. the user stores their HTML pages/images in a jar file and my application can pick these up and display them in the JEditorPane. This works fine for the HTML pages but the images are not displayed. Does anyone know how I can get the images of a HTML page to display without writing the page and/or images to the user's machine? In other words how can I access the images in the zip or jar file via the HTML document?

    any Browsable Component will not access the Filestructure of a Zipfile
    therefore you have to build up a ProxyComponent which will make the Resource accessable
    Step 1
    Write a Component which can Access Zip Files
    Step 2
    Build up a Component wich parse the htmlFile and replaces the Image links with an url of a Servlet like <a href = "\pics\Foo.jpg"> to Step3
    write a Servlet wich is Named ResourceServlet wich will send the HTML File if no Parameter is given
    (the htmlfile is loaded by Component 1 and Parsed by Component2)
    and if Parameter obj is given send the requestet image (loaded by component 1)
    Effect is, if you request the html File with aBrowsercomponent, the Browsercomponent will load all images afterwards suczessive
    Step4
    access the Servlet with a JTextField by Using a HTMLenabled variant and specifing the url:
    localhost:8080/servlet/ResourceServlet

  • Making relative calls to jar files

    Hi,
    I want to access my help system from within a jar file using the jar protocol. The issue is that I don't want to enter a fixed path to my jar file. I want something relative like this -
    URL hsURL = HelpSet.findHelpSet(null, "jar:file://..\myjarfile.jar!/myfile.hs);
    An not something fixed like this -
    URL hsURL = HelpSet.findHelpSet(null, "jar:file://c:\myfolder\myjarfile.jar!/myfile.hs);
    Any workarounds? Great, Thanks.

    Hallo,
    I have the same problem.
    The Directory "..\myApp\help" contains the files
    myhelp.hs, myhelp.jhm and all the files for JavaHelp
    It works fine but if I JARed the "help" Directory and change the URL to "jar:file://E:\\javaHelp\\myhelp.jar!/help/myhelp.hs" the file myhelp.hs could not be found.
    What is wrong?

  • Package jar files with the jdeveloper extension

    I have some dependent 3rd party jar files that needs to go with the extension. How can I package it with the extension?

    DJ,
    If you're still using 11.1.1.5 (or any version of 11gR1) place the third party libraries into a directory in your project, and reference them via the classpath entry in the extension.xml file.
    If you are looking at how you can distribute them with your extension, but not put them inside the extensions .jar file, then put them read this blog post about how to bundle your extension for distribution.
    http://blogs.oracle.com/jdevextensions/entry/working_with_jdeveloper_update_centers_and_bundlexml
    If you are adding external libraries to an extension in 11gR2, there is a blog post about that:
    http://blogs.oracle.com/jdevextensions/entry/adding_exteneral_jars_to_an
    --jb                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

Maybe you are looking for

  • How can i see my contacts on the itunes?

    Hi I have damaged my phone screen and cannot see anything on the phone. Just Synch my phone. How can i view my contacts in windows?

  • Custom Print

    I am trying to print a form with the following measures, height: 404, width: 639. The problem is that when printing, I need to choose the size of A4 paper, but in doing so I lose the positioning settings I had configured in the template of the form.

  • Sound is distorted when browser is downloading

    Hi, I just bought a new HP 15 notebook PC , windows 8.1. It's working well except for one thing. When I'm viewing a video in youtube, the sound gets distoted as long as the video is downloading. Once the download is complete it's fine. This also happ

  • Format records in the MTA msllog file ?

    Hi, All. Where i can read about format records in the MTA msglog file ?? I need this for parse this log-file. Serg

  • Need to use ABSENCE_ATTENDANCE_ID in BG_ABSENCE_DURATION formula

    Hi, Can you please help me how can i use ABSENCE_ATTENDANCE_ID in BG_ABSENCE_DURATION formula. Thanks, Anil