=================================
=================================
=================================
파일 위치 및 명령어 실행 위치 현황
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
...
=================================
=================================
=================================
자바 프로젝트부터 .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
=================================
=================================
=================================
'JAVA' 카테고리의 다른 글
자바개발 FTP 관련 (0) | 2020.09.18 |
---|---|
자바 파일스트림 쓰기 (0) | 2020.09.18 |
Java와 C/C++의 연동 관련, JNI (0) | 2020.09.18 |
[Java] 다른 프로그램 프로세싱 관리, 프로그램 죽으면 다시 실행 시키기 관련, 자바로 외부파일 실행. (0) | 2020.09.18 |
자바 현재시간 날짜 구하기 관련 (0) | 2020.09.18 |