JAVA

이클립스 java Class Path 관련

AlrepondTech 2020. 9. 18. 02:39
반응형

 

 

 

 

=================================

=================================

=================================

 

 

 

 

 

 

파일 위치 및 명령어 실행 위치 현황
D:\Java_EXE \

└Genealogy2 \                     ←명령어 실행 위치

└data
└lib                          ← swt.jar 위치
META-INF                                     (folder)
└src                         ← 실행 파일 위치(package)


● META-INF 폴더는 root 폴더 바로 아래에 만든다. 
( src 등 기타 위치에 생성하는 건 의미없다. 
eclipse에서 export를 통해 jar를 만들 때 root 폴더가 아닌 곳에 만든 manifest.mf를 참조할 경우 
eclipse가 root 폴더 아래 새로 만들기 때문에 실행 파일 설정이 정상적으로 이뤄지지 않는다. )

root\META-INF 밑에 MANIFEST.MF 만들어서 아래 내용 추가하고, Export 할 때 manifest.mf를 추가해 준다. (eclipse에서 작업해야 Resource is out of sync ~~~ 안 뜬다. 뜨면 한 번 열어서 읽어 준다.) 

MANIFEST.MF 파일 내용

Manifest-Version: 0.1
Class-Path: lib\swt.jar
Main-Class: src.ManageGenealogy




Class-Path: lib\swt.jar   ← jar 파일 내부 폴더에 둔다.
           그 외 참조할 class가 있으면 그 위치를 적어준다. 구분자는 ' '
           이 예제의 경우, swt.jar 를 제외한 모든 class가 메인 클래스와 같은 src 하부에 있어서 추가없음.
           Class-Path는 72자까지만 됨.
           Class-Path는 외부 경로(local)만 가능함. Jar 내부나, Internet 등으로 접근하는 Jar는 참조할 수 없음.

            (-> 내가 만든 jar 안에 내가 참조할 외부 jar를 넣고, Class-Path에 잡아주어도 참조하지 못한다.
                  참조하려면 1. 참조할 jar를 풀어서 내 jar 안에 넣고, sealed 처리하던가
                                  2. 외부에 참조할 jar를 위치시키고 class-path에 경로를 잡아준다.


Main-Class: src.ManageGenealogy     ←  실행 파일 경로 및 파일 명

jar 파일을 실행 가능하게 만든다.
실행 명령어 : java -jar Genealogy.jar

 

참조 : http://www.ibm.com/developerworks/kr/library/j-jar/index.html

         http://java.sun.com/docs/books/tutorial/deployment/jar/basicsindex.html
         http://blog.naver.com/echris7?Redirect=Log&logNo=140012585340

관련 글 : http://digicom.tistory.com/165

 

---------------------------------------------------------------------------------------------------
출처: http://digicom.tistory.com/383

...


 

=================================

=================================

=================================

 

 

 

 

반응형

 

 

728x90

 

 

 

 

자바 프로젝트부터 .classpath 파일이라는 XML 파일만 생긴다.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
 <classpathentry kind="src" path=""/>
 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 <classpathentry kind="output" path=""/>
</classpath>

 

classpathentry 의 유형을 kind 로 분류하는 모양이다.

 




con 은 container 의 약자인가? 분명한 것은 JRE 를 의미한다는 점이다.

src 나 output 은 의미가 분명하다.

var 는 Variable 의 약자이고, lib 는 Library 의 약자이다.

참고로 다른 프로젝트의 클래스 폴더를 추가하면 lib 가 된다. 합리적이네.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
 <classpathentry kind="src" path=""/>
 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 <classpathentry sourcepath="E:/work/platform/repository/logging-log4j-1.2.13/src/java" kind="lib" path="/log4j/lib/log4j-1.2.13.jar">
  <attributes>
   <attribute value="file:/E:/work/platform/repository/logging-log4j-1.2.13/docs/api" name="javadoc_location"/>
  </attributes>
 </classpathentry>
 <classpathentry kind="output" path=""/>
</classpath>

 

다른 프로젝트의 lib 를 참조하니 프로젝트 이름부터 시작하도록 path가 설정된다.

소스와 Javadoc 을 첨부해 두었더니 그 정보도 함께 추가되어 다소 복잡해보인다.

 

개념 모델을 다시 수정해본다.

 

자바 프로젝트일 때는 con 유형이 하나 이지만 웹 프로젝트는 다수가 된다.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
 <classpathentry kind="src" path="src"/>
 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.5.0_06"/>
 <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v5.5"/>
 <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container/test"/>
 <classpathentry kind="output" path="build/classes"/>
</classpath>

 

Organize the Package Explorer View 라는 글을 보니

classpathentry 의 정의된 순서 이클립스에 나열되는 순서를 반영하는 모양이다.

테스트해보니 실제로 그렇군..^^;

 

<classpathentry> 항목의 순서를 변경해서.. 이클립스에 보이는 순서를 제어할 수 있다.

[출처] 이클립스 .classpath 파일 해부 & 팁(Tip) |작성자 2skfro

 

 

=================================

=================================

=================================

 

 

관련링크
http://ko.w3support.net/index.php?db=so&id=84486

http://charmpa.egloos.com/2052918

http://skynaver.tistory.com/85

http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=72940653&qb=TUFOSUZFU1QuTUYg7ISk7KCV&enc=utf8§ion=kin&rank=2&sort=0&spq=0&pid=ga9zIsoi5UKssbgPuoCsss--524287&sid=TF9z6GNzX0wAAGTeCYU

 

=================================

=================================

=================================

 

 

반응형