자바 컴파일 (Java Compile - CMD)

If this post was helpful to you, please leave a comment. :) Thank you!


자바 컴파일 (Java Compile - CMD)

: CMD 환경에서 사용자 클래스 패키지(package)를 참조하는 자바 사용자 클래스(user class) 컴파일하기











TestModel.java
package org.vvish.model;

public class TestModel {
public String getModel(String model) {
model = "Test" + model;
return model;
}
}

TestWeb.java
package org.vvish.web;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.vvish.model.TestModel;

public class TestWeb extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
TestModel tm = new TestModel();
System.out.println(tm.getModel("doGet"));
}
}

1. 컴파일 할 자바 파일들을 한 폴더에 위치 시킨다. (ex: E:\Test\TestModel.java, TestWeb.java)
2. cmd> cd e:\test
3. cmd> javac TestModel.java -d .
: -d 옵션을 주면, 현재 폴더에 패키지명으로 폴더를 생성한다. (E:\Test\org\vvish\model\TestModel.class)

--------------------------------------------------------------------------------------------------------------------------
4 cmd > javac TestWeb.java -d
: TestModel.java와는 다르게 package javax.servlet does not exist 에러가 발생한다. 이 때  -classpath 옵션을 사용하면 위 문제를 해결 할 수 있다. (javac.servlet은 servlet-api.jar에 포함)

4. cmd > javac -classpath E:\server\tomcat-8.0.36\lib\servlet-api.jar TestWeb.java -d .
: javax.servlet 에러는 사라졌지만, package org.vvish.model does not exist 에러가 발생한다.
현재 폴더에 패키지명으로 org\vvish\model\TestModel.class 파일이 존재하지만 javac에서 찾을 수 없다고 한다.

위의 문제를 해결하기 위해선 TestModel.java와 TestWeb.java 파일을 한 번에 컴파일 해야한다.

4. cmd > javac -classpath E:\server\tomcat-8.0.36\lib\servlet-api.jar *.java -d .
: 실행하면 각 패키지 폴더에 TestModel.class, TestWeb.class 파일이 정상적으로 생성이 된다.

Comments