ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver - java

I have java code which connects to a MS-SQL database and procures some data.
Before running the code I set the class path in the Unix Server and it used to work fine.
But for some reason the same jar file which was working a few days back is throwing a Class not found exception java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver
I have un-jared the jar file and found that the driver class which I'm loading :
Class.forName("net.sourceforge.jtds.jdbc.Driver");
is present in the specified package structure.
I don't understand how this is happening.
Can anyone suggest any tips to resolve this.

The issue of java.lang.ClassNotFoundException might be the outcome of several reasons:
Jar file is not available in class path. (This is not your case. as
you have mentioned).
Your jar file is corrupted.
Your environment variable value is not accessible by current user.
(Permission revoked by administrator).
Current user don't have permission to read jar file.
Please verify the last three options.

Right button on project-> Properties - > Java built Path -> Order and Export -> And check checkBox with you jar.
If you connect on Android project to Use 1.2.7 version.

I know it's late, but for others facing the same problem..
If you are using eclipse:
1. Go to Project -> Properties -> Java Build Path -> Order and export.. and check the jar file for jtds.version.jar
2. Go to Run Configurations and add this jar file to the user defined jars.
Hope this helps..:)

Related

Java unable to load class for JDBC driver

I'm trying to make a program in intelJ that connects to a SQL database, but I receive this error when it tries to find the drivers.
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
I've checked that the directory I use is correct when using Class.forname
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
and it points to the correct location within the Jar file for the driver. I'd assume that that java is unable to find the class for whatever reason, as I've done the exact same thing with a second project which works fine. Any ideas?
You need to add the driver JAR to the classpath of the project.
If you're using a simple Java project: right click on the project in IntelliJ IDEA > Open Module Settings. Then, Project Settings > Libraries. Click on +. Select Java. Browse to the driver JAR. Click OK and it should work.
You need to add it to the module's dependencies. The Libraries section just lists the libraries of this project.

Installation of metadata-extractor

I'm stuck on installation.
I downloaded Maven, but I'm not sure which file within
the metadata-extractor folder (that I downloaded from the repo) to use as the target.
I tried all the files at the top level.
All attempts have failed, e.g.
java -jar metadata-extractor-2.13.0.jar build.gradle
com.drew.imaging.ImageProcessingException: File format could not be determined
I am using v2.13.0 of the meta-data extractor
I've just started to code and took interest in this project but also had issues using it. Instead of using Maven i just downloaded the source code from github and threw the 'com' folder into my myproject/src folder. Then i downloaded the xmpcore-6.1.10.jar library and added it to the Build Path. Got it working that way. I hope someone will give you a better solution but if you just wanna do something right away, you can try this solution.
Try downloading IntelliJ and create a "new project from version controll". Use the URL given on the GitHub page (under download/code). That will save you a lot of problems.

Java class failed to Connect with Mysql Driver [duplicate]

This question already has answers here:
Connect Java to a MySQL database
(14 answers)
Closed 4 years ago.
This question might have asked here number of times . After doing some google search for the above error and doing some update, I can't understand why I'm still getting that error. I've already put my driver-- mysql-connector-java-5.1.5-bin in the classpath:
Java_Home\jre\lib\
Java_Home\jre\lib\ext\
Java_Home\lib
and the code which I'm using to connect to mysql database is:
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mail","root","");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select message_body from deadletter");
String dbtime;
while (rs.next()) {
dbtime = rs.getString(1);
System.out.println(dbtime);
}
con.close();
}
catch (SQLException e) {
System.out.println("Connection Failed! Check output console");
e.printStackTrace();
}
}
and the complete stacktrace of the above exception is:
java.lang.ClassNotFoundException: com.mysql.jdbc:Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at mail.main(mail.java:114)
Now, what's wrong I'm doing here?
If you're facing this problem with Eclipse, I've been following many different solutions but the one that worked for me is this:
Right click your project folder and open up Properties.
From the right panel, select Java Build Path then go to Libraries tab.
Select Add External JARs to import the mysql driver.
From the right panel, select Deployment Assembly.
Select Add..., then select Java Build Path Entries and click Next.
You should see the sql driver on the list. Select it and click first.
And that's it! Try to run it again! Cheers!
I too struggled with the same problem and finally got the solution for it.
Just copy the MySql-Connector.jar into Tomcat's lib folder, and then remove the jar from the webapp's lib folder, and then, run the project.
The most common cause is that you have some conflict in where your classes are loaded from. For example if you have 2 locations and one has JDBC drivers and the other one not then if your classloader loads from the 1st location and some class from the 1st location wants to use the driver - the driver is not there. So look for the duplicate JARs that are using your driver
I have the same problem
but I found this after a long search:
http://www.herongyang.com/JDBC/MySQL-JDBC-Driver-Load-Class.html
But I made some change. I put the driver in the same folder as my ConTest.java file,
and compile it, resulting in ConTest.class.
So in this folder have
ConTest.class
mysql-connector-java-5.1.14-bin.jar
and I write this
java -cp .;mysql-connector-java-5.1.14-bin.jar ConTest
This way if you not use any IDE just cmd in windows or shell in linux.
this ans is for eclipse user......
first u check the jdbc jar file is add in Ear libraries....
if yes...then
check...in web Content->web Inf folder->lib
and past here jdbc jar file in lib folder.....
1) Download connector from here https://www.mysql.com/products/connector/
2) Select JDBC driver for mysql
3) click on Platform Independent (Architecture Independent), ZIP Archive
4) Download the file and unzip it
5) (For Eclipse)Click Project->properties-> Java Build Path->Libraries
(For Netbeans) right click libraries on left bar-> add jar
6) Click on add external jar
7) select mysql-connector-java-5.1.40-bin.jar
8) Done!
If you are using NetBeans follow the following steps:
Right click on 'Libraries' and select 'Add Library..'
Scroll down the list of 'Global Libraries' and select 'MySQL JDBC Driver' and click on 'Add Library'.
What did you put exactly in lib, jre/lib or jre/lib/ext? Was it the jar mysql-connector-java-5.1.5-bin.jar or something else (like a directory)?
By the way, I wouldn't put it in lib, jre/lib or jre/lib/ext, there are other ways to add a jar to the classpath. You can do that by adding it explicitly the CLASSPATH environment variable. Or you can use the -cp option of java. But this is another story.
In NetBeans,
right click on libraries, select properties
select rub tab
there you need to add the mysql-connector-java.jar and apply
You should download MariaDB connector.
Then:
Expand your project.
Right-click on Libraries.
Select Add Jar/Folder.
Add mariadb-java-client-2.0.2.jar which you just downloaded.
Ok, i find solution changing the path of mysql-conector-java.jar to the follow path:
ProjectName/WebContent/Web-inf/lib/mysql-conector-java.jar
So you need to add the conector to project again and delete the previous one.
Most of the possible solution has been covered above. From my experience of this issue, i have placed the mysql-connector-jar in the /WEB-INF/lib folder of the webapp module and it worked fine for me.
In netbean
Right click on your project, then you click on Libraries, then Run tab, add library, then select mysql connector
In IntelliJ
Do as they say in eclipse
"If you're facing this problem with Eclipse, I've been following many different solutions but the one that worked for me is this:
Right click your project folder and open up Properties.
From the right panel, select Java Build Path then go to Libraries tab.
Select Add External JARs to import the mysql driver.
From the right panel, select Deployment Assembly.
Select Add..., then select Java Build Path Entries and click Next.
You should see the sql driver on the list. Select it and click first.
And that's it! Try to run it again! Cheers!"
Here we have to add the jar file in Project Structure -> Libraries -> +(add)
I keep the mysql-connector jar with my project rather than in Javahome. As a result, you can be sure it can be found by being sure its in the local classpath. A big upside is that you you can more the project to another machine and not have to worry about (or forget) to set this up again. I personally like including it in version control.
Ok..May be i can also contribute my solution..
Right click on project -properties -->Deployment assembly...there you need to add the mysql-connector-java.jar and apply it...which makes your prject configured with web-Libraries that has this sql connector...This worked for me..
I hope this works for you guys as well
The only thing that worked for me was downloading the mysql-connector-java-5.0.8-bin.jar directly from the MySQL website:
http://dev.mysql.com/downloads/connector/j/3.1.html
Then if you're using Eclipse paste this mysql-connector-java-5.0.8-bin.jar in the WEB-INF lib folder
If doesn't works try with any of the solutions posted in this link:
http://javarevisited.blogspot.com/2012/03/jdbc-javalangclassnotfoundexception.html
I experienced the same error after upgrading my java to 1.8.0_101. Try this:
i. Remove the mysql.jar fro your buildpath.
ii. Clean the server and project
iii. Add the jar file back to the build path.
Worked for me.
Just copy the MySQL JDBC drive jar file and paste it to Tomcat or whatever is the server's lib folder. It works for me.
just copy and paste the mysqlconnector jar to your project folder and then build path it will definitely work.
see to it that the argument of Class. forName method is exactly "com. mysql. jdbc. Driver".
If yes then see to it that mysql connector is present in lib folder of the project. if yes then see to it that the same mysql connector . jar file is in the ClassPath variable (system variable)..

commons-logging-1.1.jar; cannot read zip file entry

I have imported a GWT project from GIT , but when i run maven Install
it says
.m2\repository\commons-logging\commons-logging\1.1\commons-logging-1.1.jar; cannot read zip file entry
and if i simply run my application , i get this
\git\my-Search-Engine\qsse\war}: java.lang.NoClassDefFoundError: com/google/inject/servlet/GuiceServletContextListener
I tried to find out the way , one solution i found was to move the guice-servlet-3.0 from build path to \qsse\war\webinf\lib
but if i do that i start getting this exception
ava.lang.NoClassDefFoundError: com/google/inject/Injector
any idea how can i resolve this
For first question:
Can you open it in a WinZip or other compression tool.
Try deleting that jar and build again. Let Maven download it a fresh.
For Second Questin:
Which GWT version are you using ?
Verify that the required JAR is in your classpath including guice.jar and guice-servlet-3.0.jar
And also, guice-servlet-3.0.jar should not be in you launch configuration classpath. It has to be in your project classpath.
For the second question, can you also move the other guice jars to webinf\lib ? (guice-3.0.jar should be missing)

Adding jdbc driver to classpath

Ok I am on Win Vista and correctly set my MAVEN_HOME, JAVA_HOME stuff. but I do not have a class path yet. I have also installed MySQL. now I have opened a Hibernate book and at the very first pages it says "make sure the jdbc driver is in your classpath" . I have also downloaded some Zip file that is ConnectorJ or some name like that which is basically the mySql driver for java... but my problem for now is this sentence that I have no clue how to do it: "make sure the jdbc driver is in your classpath"
would you please help me about this classpath thing?
thanks
Here is a good tutorial regarding, setting the class path. Further you might like to read Managing the Java classpath (Windows).
Having said that, you should not set the classpath for your driver in Windows environment variable. Instead, you should include that driver jar inside your IDE under project properties. But I noticed that you are actually using Maven. In this case you should look for the driver under Maven in order to fulfil that dependency. Maven will download the driver jar, if doesn't exist, and make it local.
In case, you are not using any IDE, then you can create a lib directory and tell the compiler that all required jars are in there, at the time of compilation/execution. You can find HOW, in the former link given above.
Since you are using Maven, you just need to put the JDBC driver as a dependency in your pom.xml file. Maven will add it to the classpath whenever it compiles/runs your application.
What you do when deploying your application is dependent on the technologies in use.
If it's a command line application create a %CLASSPATH% variable or add the path to the jdbc.jar file using the java -cp {path\to\jdbc.jar} option.
If it's a web application, you'll need to package the driver jar in your .war/.ear/.sar (the maven assembly plugin can do this) or include it in the ./lib folder of the application container and declare it as scope=provided in maven.
Steps to setup JDBC for Eclipse projects
Download JDBC zip archive from
https://dev.mysql.com/downloads/connector/j/5.0.html
Extract the file and copy the executable jar file to program files->Java->jdk->bin
Right click on the project and select Buildpath->Add external archives->(Jar file)
Compile the program
you can directly connect database by following steps:
1) download mysql-connector-java 5.0.8 and extract the files.
2) then place the folder in program files.
3) then simply add this library on your project by right clicking on it.
4) and here you go. Run your app with db connectivity.

Categories

Resources