C:\WINDOWS\SYSTEM32\java.exe -splash:EMsplash.jpg  -jar "C:\Program Files\ElectionManager\EMServer.jar"

 

For those concerned about the path to the database, EMDatabase IS the (relative) path to the database from the working directory.

 

Also, moving everything around to eliminate spaces in paths (e.g., Program Files) changes nothing (pretty much as expected, but since I'm grasping at straws, I tried it).


From: "Rick Hillegas" <rick.hillegas@oracle.com>
To: "Derby Discussion" <derby-user@db.apache.org>
Sent: Tuesday, August 9, 2011 9:36:02 AM
Subject: Re: Can't Load Embedded Driver

Hi Roy,

What is the full command line which you use to run your application?

Thanks,
-Rick

On 8/8/11 3:06 PM, Roy.Minet@comcast.net wrote:
> Thanks for the suggestion, Myrna.  However, it's NOT Intellij Idea
> that is having a problem; everything has been working perfectly in
> dev.  It's when I build a jar and just run under Windows that the
> problem occurs.  I'm getting desperate, though, so I'll try  
> "PROGRA~1" and/or moving the jars to somewhere else with no spaces in
> the path.
>
> ------------------------------------------------------------------------
> *From: *"Myrna van Lunteren" <m.v.lunteren@gmail.com>
> *To: *"Derby Discussion" <derby-user@db.apache.org>
> *Sent: *Monday, August 8, 2011 5:18:17 PM
> *Subject: *Re: Can't Load Embedded Driver
>
> On Mon, Aug 8, 2011 at 1:53 PM, <Roy.Minet@comcast.net> wrote:
> > That bottom level plumbing has been working perfectly for two years
> in dev.
> > I remember thinking it was pretty cool and developer-friendly.  I had
> > essentially NO trouble getting it all up and working.  I have now
> added the
> > code to explicitly load the driver.  It works fine in dev, but not
> deployed
> > in a jar (java.lang.ClassNotFoundException:
> > org.apache.derby.jdbc.EmbeddedDriver).  CLASSPATH surely would be
> the usual
> > suspect, but echo %CLASSPATH% yields "C:\Program
> > Files\Apache\db-derby-10.8.1.2-bin\lib\derby.jar;." (derby.jar
> really IS in
> > that location) and  java org.apache.derby.jdbc.EmbeddedDriver yields
> > "Exception in thread "main" java.lang.NoSuchMethodError: main" as
> Rick says
> > it should.  So, WTF am I doing wrong?  In Unix, I would have
> double-checked
> > rwx permissions (maybe Intellij Idea is running as root), but I'm not as
> > familiar with this stuff in Windows.
> >
> > ________________________________
> > From: "Rick Hillegas" <rick.hillegas@oracle.com>
> > To: "Derby Discussion" <derby-user@db.apache.org>
> > Sent: Monday, August 8, 2011 3:24:09 PM
> > Subject: Re: Can't Load Embedded Driver
> >
> > Hi Roy,
> >
> > Thanks for including the code snippet. As Raymond points out, you are
> > not loading the driver explicitly. This should not be necessary if you
> > are using Java 6 or 7. However, driver autoloading does not happen in
> > Java 5 and earlier versions of Java. What version of Java are you using?
> >
> > Thanks,
> > -Rick
> >
> > On 8/8/11 11:55 AM, Raymond Kroeker wrote:
> >> Hi Roy,
> >>
> >> The fqcn, is the fully qualified class name of the driver.  So in your
> >> code you're using the driver manager to grab a connection; however I
> >> don't see a reference to loading the driver:
> >>
> >>
> http://db.apache.org/derby/papers/DerbyTut/embedded_intro.html#embedded_driver
> >>
> >> Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
> >>
> >> Raymond
> >>
> >> On Mon, Aug 8, 2011 at 11:47,<Roy.Minet@comcast.net>  wrote:
> >>> I do not know what an "fqcn" is.  I am running the latest Derby
> release,
> >>> 10.8.1.2.  The code pasted in below works great in the dev environment
> >>> (IntelliJ Idea), but the same code packaged in a jar cannot find the
> >>> driver
> >>> with CLASSPATH set correctly.
> >>>
> >>>     public static Connection getConnection()
> >>>     {
> >>>        Connection c = null;
> >>>        try
> >>>        {             // The connectionURL
> >>> is "jdbc:derby:EMDatabase;create=true"
> >>>           c = DriverManager.getConnection(connectionURL);
> >>>           c.setAutoCommit(false);
> >>>        }
> >>>        catch (Throwable e)
> >>>        {
> >>>           log(3, "Unable to connect to " + dbName + ":  " +
> >>> e.getMessage());
> >>>           stopDBMS();
> >>>           System.exit(3);
> >>>        }
> >>>        return c;
> >>>     }
> >>>
> >>>
> >>>
> >>> ________________________________
> >>>
> >>> From: "Raymond Kroeker"<raykroeker@gmail.com>
> >>>
> >>> To: "Derby Discussion"<derby-user@db.apache.org>
> >>> Sent: Monday, August 8, 2011 10:08:11 AM
> >>> Subject: Re: Can't Load Embedded Driver
> >>>
> >>> Can you try specifying the driver as a fqcn? If that doesn't solve the
> >>> issue
> >>> please paste relevant code around how you load the driver and obtain a
> >>> connection.
> >>>
> >>> Raymond
> >>>
> >>> On Aug 8, 2011 6:55 AM,<Roy.Minet@comcast.net>  wrote:
> >>>>
> >>>> Rick,
> >>>>
> >>>>
> >>>>
> >>>> Thank you very much for offering your help.  Apparently my
> CLASSPATH is
> >>>> good.  I typed in "java org.apache.derby.jdbc.EmbeddedDriver" and did
> >>>> indeed
> >>>> get exactly the expected "Exception in thread "main"
> >>>> java.lang.NoSuchMethodError: main" error message.  What else could be
> >>>> causing  my problem?
> >>>>
> >>>>
> >>>>
> >>>> Roy
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> ----- Original Message -----
> >>>>
> >>>>
> >>>> From: "Rick Hillegas"<rick.hillegas@oracle.com>
> >>>> To: "Derby Discussion"<derby-user@db.apache.org>
> >>>> Sent: Monday, August 8, 2011 9:00:58 AM
> >>>> Subject: Re: Can't Load Embedded Driver
> >>>>
> >>>> On 8/7/11 9:54 AM, Roy.Minet@comcast.net wrote:
> >>>>> I have been happily using Derby for two years within IntelliJ Idea,
> >>>>> but have now hit a wall trying to deploy the application I
> developed.
> >>>>> I have tried setting the path to derby.jar on the command line
> and/or
> >>>>> in the CLASSPATH environment variable to no avail.  The embedded
> >>>>> driver doesn't load; the error message is, "No suitable driver found
> >>>>> for jdbc:derby:EMDatabase;create=true".  I'm under Windows XP Pro.
> >>>>> Any help would be appreciated.
> >>>>>
> >>>>> Roy Minet
> >>>>>
> >>>>>
> >>>> Hi Roy,
> >>>>
> >>>> This is almost always a CLASSPATH problem. With the same
> CLASSPATH, try
> >>>> the following experiment:
> >>>>
> >>>> java org.apache.derby.jdbc.EmbeddedDriver
> >>>>
> >>>> If the CLASSPATH is good, you should see this error:
> >>>>
> >>>> Exception in thread "main" java.lang.NoSuchMethodError: main
> >>>>
> >>>> Hope this helps,
> >>>> -Rick
> >>
> >>
> >
> Looks like it should work. Perhaps derby/intelliJ Idea/the jvm has
> trouble with the space in the classpath. I think with some tools I
> have to use the 8 character DOS equivalent (e.g. Progra~1 instead of
> Program Files) when I refer to directory names with spaces.
>
> So, perhaps it's worth a quick try to see if it works if you plop
> derby.jar and/or your other jar somewhere else than in the Program
> Files directory (and adjust the classpath too, of course).
>
> Myrna