title: Classpath set, but: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
body: <p>Okay, I'm confused. My SQL Server JAR is here:</p>
  
  <pre><code>     Volume in drive C has no label.
   Volume Serial Number is 8008-2D93
  
   Directory of c:\temp
  
  03/07/2014  09:38 AM    &lt;DIR&gt;          .
  03/07/2014  09:38 AM    &lt;DIR&gt;          ..
  03/05/2014  10:34 PM           222,417 output.exd
  02/17/2012  02:45 PM           563,117 sqljdbc.jar
  02/17/2012  02:45 PM           584,207 sqljdbc4.jar
                 3 File(s)      1,369,741 bytes
                 2 Dir(s)  21,865,553,920 bytes free
  </code></pre>
  
  <p>My Classpath is set:</p>
  
  <pre><code>C:\WINDOWS\system32&gt;echo %CLASSPATH%
  .;C:\Program Files (x86)\Java\jre7\lib\ext\QTJava.zip;c:\temp\sqljdbc4.jar
  </code></pre>
  
  <p>Its a JDBC 4.0 driver, so I shouldn't need to do this, but I've tried setting the class name.</p>
  
  <pre><code>Properties connectionProps = new Properties();
              connectionProps.put("user", this.jdbcUser);
              connectionProps.put("password", this.jdbcPass);
              Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
              conn = DriverManager.getConnection(this.jdbcUrl, connectionProps);
  </code></pre>
  
  <p>Still I execute my program and I'm getting the error:</p>
  
  <pre><code>java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
  
  C:\WINDOWS\system32&gt;java -jar "C:\Users\MYUSER\Documents\NetBeansProjects\myappSource\dist\myappSource.jar" -u MYUSER -p MYPASS -j "jdbc:sqlserver://127.0.0.1\\msqlserver:1433;database=MYDB"
  Mar 07, 2014 9:49:54 AM filters.myapp.dao.db.DbSwitcher getDatabaseForUrl
  SEVERE: jdbc:sqlserver://127.0.0.1\\msqlserver:1433;database=MYDB
  Mar 07, 2014 9:49:54 AM filters.myapp.dao.db.Database connect
  SEVERE: null
  java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
          at java.net.URLClassLoader$1.run(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.Class.forName0(Native Method)
          at java.lang.Class.forName(Unknown Source)
          at filters.myapp.dao.db.Database.connect(Database.java:217)
          at filters.myapp.dao.db.Database.&lt;init&gt;(Database.java:38)
          at filters.myapp.dao.db.MssqlDb.&lt;init&gt;(MssqlDb.java:15)
          at filters.myapp.dao.db.DbSwitcher.getDatabaseForUrl(DbSwitcher.java:14)
          at filters.myapp.UserInterface.cli(UserInterface.java:76)
          at filters.myapp.UserInterface.&lt;init&gt;(UserInterface.java:34)
          at filters.myapp.UserInterface.main(UserInterface.java:46)
  </code></pre>
  
  <p>In case it matters, I'm running Windows 8.1. I've tried the command prompt both as an admin and as not.</p>
  
  <p>Java info:</p>
  
  <pre><code>C:\WINDOWS\system32&gt;java -version
  java version "1.7.0_51"
  Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
  Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
  </code></pre>
  
  <p>Any ideas?</p>
  
  <p>SQL Server is SQL Server Express 2012.</p>