기본 환경: IDE: Eclipse, Language: Java

 

 

발생 Exception

Java에서 다음 Source Code를 실행할 경우,

⭐ java.lang.NumberFormatException 발생

 

 

Exception 원인

1. 입력값이 다음과 같을 때, 띄어쓰기가 있는 문자를 Integer화할 수 없음

2

2 3 4

2. br.readLine(): 입력을 요청하는 method이므로 new StringTokenizer(br.readLine(), " ") 선언 시, 라인단위로 입력을 받아 띄어쓰기 단위로 st에 저장

 

 

해결 방법

입력 순서에 따른 BufferedReader, StringTokenizer 재배치

 

 기본 환경: IDE: Eclipse, Language: Java

 

 

발생 Exception

Java에서 다음 Source Code를 실행할 경우,

⭐ java.util.NoSuchElementException 발생

 

 

Exception 원인

StringTokenizer는 1회만 사용 가능

 

 

해결 방법

1행에 n, x를 구분하기 위해 사용했으므로 for문을 위한 StringTokenizer를 재생성

 

 기본 환경: IDE: Eclipse, Language: Java

 

 

발생 Error

Servlet file에서 다음 Source Code를 실행할 경우,

Server Tomcat v9.0 Server at localhost failed to start. Error가 발생하여 tomcat server 실행이 되지 않음

(현재 Tomcat v9.0을 사용하여 servlet 실행)

 

 

Error 원인

web.xml 파일에서의 경로 설정과 Servlet 파일에서의 경로 설정이 중복되어 tomcat server가 load되지 않음

 

해결 방법

web.xml 파일 or servlet 파일 중 한개의 파일에만 Servlet 경로 설정

 

 기본 환경: IDE: Eclipse, Language: Java

 

 

발생 Error

Servlet에서 다음 Source Code를 실행할 경우,

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>testServlet</display-name>
  
  
  <!-- 새로운 Servlet 파일 등록 -->
  <servlet>
  	<servlet-name>CalcServlet</servlet-name>
  	<servlet-class>com.calc.CalcServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>CalcServlet</servlet-name>
  	<url-pattern>/CalcServlet</url-pattern>
  </servlet-mapping>

  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>
</web-app>

 Type 'com.calc.CalcServlet' already exists with same name but different case. Error가 발생하여 Servlet 파일을 만들 수 없음

 

 

Error 원인

Servlet file을 생성 전에 web.xml 파일에 미리 servlet에 대한 정보 설정을 하여, servlet 파일이 존재하는 것으로 취급됨

 

 

해결 방법

web.xml 파일에 servlet 구문을 지운 후, servlet 파일을 생성하고나서 재 입력을하고 진행

 기본 환경: IDE: Eclipse, Language: Java

 

 

발생 Error

Java에서 다음 Source Code를 실행할 경우,

package temp;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

public class Tmp {
	Scanner scan = new Scanner(System.in);

	private Connection conn;
	private PreparedStatement pstmt;

	// DB 변경 시, 변수 활용(환경 설정)
	private String driver = "oracle.jdbc.driver.OracleDriver";
	private String url = "jdbc:oracle:thin:@localhost:1521:xe";
	private String userName = "C##JAVA";
	private String passWord = "1234";

	public Tmp() {
		try {
			Class.forName(driver);
		} catch(ClassNotFoundException e) {
			e.printStackTrace();
		}
		this.getConnection(); // 접속

	}

	// 접속
	public void getConnection() {
		try {
			conn = DriverManager.getConnection(url, userName, passWord);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
		
	public void menu() {
		Tmp std = new Tmp();		

		while(true) {
			System.out.println();
			System.out.println("****************");
			System.out.println("   관리");
			System.out.println("****************");
			System.out.println("  1. 입력");
			System.out.println("  2. 검색");
			System.out.println("  3. 삭제");
			System.out.println("  4. 종료");
			System.out.println("****************");
			System.out.print("  번호선택 :");
			int num = scan.nextInt();
			
			if(num==4) {}
			
			if(num==1) {}
			else if(num==2) {}
			else if(num==3){}
			else {}
		
		} // while
	}
	

	public static void main(String[] args) {
		Tmp std = new Tmp();		
		std.menu();

	}
}

다음과 같은 OracleDriver에 대한 ClassNotFoundException 발생

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:375)
	at temp.Tmp.<init>(Tmp.java:24)
	at temp.Tmp.main(Tmp.java:69)

 

 

Exception 원인

해당 Java Project에 jar 파일 lib 설치 및 build path를 설정하지 않음

 

 

해결 방법

 

좌측 그림과 같이 Java Project별로

1. 일반 lib 폴더 생성

2. lib 폴더에 ojdbc8.jar 파일 저장

3. Build: Start to build path 설정