我应该如何添加JAR库在Eclipse中一个WAR项目没有遇到java.lang.ClassNotFoundException或java.lang.NoClassDefFoundError?
在CLASSPATH环境变量似乎并没有工作.在某些情况下,我们将JAR文件添加到Eclipse项目的Build Path属性中以使代码编译.我们有时需要将JAR文件放在/WEB-INF/libJava EE Web应用程序的文件夹中,以使代码在该JAR内的类上运行.
我不完全理解为什么CLASSPATH不起作用,在哪些情况下我们应该将JAR添加到Build Path以及何时应该放置这些JAR /WEB-INF/lib.
我在下面的代码中有一个例外...我正在尝试构建一个简单的servlet项目,并且我引发了以下异常:java.net.UnknownHostException...
我添加了mysql jar文件,此外...我已将其添加为外部jar文件以及WEB-INF中的lib下,如本页所述,但现在这是抛出一个java.net.UnknownHostException.
这是代码和异常堆栈跟踪.
package com.servlet.Mysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Connection_Class {
String driver_ClassName="com.mysql.jdbc.Driver";
String URL_connection="jdbc:mysql://localhost3306/vendor";
String user="root";
String password="lifesuckzz";
private static Connection_Class connectionclass=null;
private Connection_Class(){
try{
Class.forName(driver_ClassName);
}catch(ClassNotFoundException e){
e.printStackTrace();
}
}
public Connection getConnection() throws SQLException{
Connection con=null;
con=DriverManager.getConnection(URL_connection,user,password);
return con;
}
public static Connection_Class getInstance(){
if(connectionclass==null){
connectionclass=new Connection_Class();
}
return connectionclass;}}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.UnknownHostException
MESSAGE: …Run Code Online (Sandbox Code Playgroud) 我一直在尝试获取与MySQL的JDBC连接的Driver类.工作站在Linux,Fedora 10上运行.我已经通过CLI为Java手动设置了类路径变量,如下所示:
bash-3.2$ echo $CLASSPATH
/home/cmao/public_html/jsp/mysql-connector-java-5.1.12-bin.jar
Run Code Online (Sandbox Code Playgroud)
这表明我已经将最新的mysql连接jar存档添加到我的CLASSPATH变量中.
我已经创建了一个测试JSP页面,可以在这里找到
此页面的源代码是:
<%@page language="java"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<html>
<head>
<title>UTS JDBC MySQL connection test page</title>
</head>
<body>
<%
Connection con = null;
out.print("Java version is : " + System.getProperty("java.version") + "<br />");
out.print("Tomcat version is : " + application.getServerInfo() + "<br />");
out.print("Servlet version is: " + application.getMajorVersion() + "<br />");
out.print("JSP version is : " + JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion() +"<br />");
//out.print("Java classpath is : " + System.getProperty("java.class.path")+ "<br />");
//out.print("JSP …Run Code Online (Sandbox Code Playgroud)