'분류 전체보기'에 해당되는 글 223건
- 2011.10.12 Windows 심볼릭링크 맨들기
- 2011.10.11 11번가 바로가기 링크 2
- 2011.10.11 A java Runtime Environment(JRE) or Java Development Kit(JDK) must be ~~~~ 하면서 이클립스가 실행안될때. 22
- 2011.10.11 Spring 개발시 개발, 운영환경 프로퍼티 파일 관리하기 1
- 2011.10.10 Runtime 에 jar 파일 클래스패스에 추가 시키기 : RuntimeJarLoader 1
Windows 심볼릭링크 맨들기
쓸만한지식 2011. 10. 12. 13:06
리눅스의 ln 명령어와 비슷한 명령어이다.
ex) doc.txt 파일의 심볼릭링크 link.txt 파일을 생성한다.
ex) c:\windows 폴더의 심볼릭링크 c:\winlink 폴더를 생성한다.
mklink 생성될링크파일명 링크시킬파일명
ex) doc.txt 파일의 심볼릭링크 link.txt 파일을 생성한다.
mklink c:\link.txt c:\doc.txt
mklink /d 생성될링크폴더명 링크시킬폴더명
ex) c:\windows 폴더의 심볼릭링크 c:\winlink 폴더를 생성한다.
mklink /d c:\winlink c:\windows
'쓸만한지식' 카테고리의 다른 글
모바일 페이지 작성시 가로,세로 모드에 따라 다른 css 파일 적용시키기 (0) | 2011.10.24 |
---|---|
네이버에서 제공해주는 PPT, DOC, HWP 서식(Template) 받자~ (1) | 2011.10.24 |
11번가 바로가기 링크 (2) | 2011.10.11 |
크롬 최신버전 14.0.835.202 for Chrome Stable 다운로드 직링크(11.10.07) (0) | 2011.10.07 |
Cron 표현식 생성해 주는 사이트(Cron Maker) (0) | 2011.10.05 |
11번가 바로가기 링크
쓸만한지식 2011. 10. 11. 23:59
11번가는 주소창에 직접 URL 을 입력해도 바로가기로 접속했다고 인식이 안된다.
그지같이 ActiveX를 설치한 다음 바로가기를 설치해서 고걸로 접속을 해야 바로가기로 인식이 된다. 왜 이렇게 만들었을까 -_-
ActiveX 설치를 병적으로 싫어하는 사람들은 요링크로 접속하면 바로가기로 접속했다고 인식이된다~~
http://www.11st.co.kr/connect/Gateway.tmall?method=Xsite&tid=1000105204
'쓸만한지식' 카테고리의 다른 글
네이버에서 제공해주는 PPT, DOC, HWP 서식(Template) 받자~ (1) | 2011.10.24 |
---|---|
Windows 심볼릭링크 맨들기 (0) | 2011.10.12 |
크롬 최신버전 14.0.835.202 for Chrome Stable 다운로드 직링크(11.10.07) (0) | 2011.10.07 |
Cron 표현식 생성해 주는 사이트(Cron Maker) (0) | 2011.10.05 |
MySQL 테이블명 대소문자 구분안하기 (0) | 2011.10.04 |
A java Runtime Environment(JRE) or Java Development Kit(JDK) must be ~~~~ 하면서 이클립스가 실행안될때.
이클립 2011. 10. 11. 23:13
A java Runtime Environment(JRE) or Java Development Kit(JDK) must be available in order to run Eclipe. 요런 팝업창이 뜨면서 이클립스가 실행이 안될때가 있다.
요럴때 해결하는 방법으로 두가지 정도가 있는데
먼저 첫번째 방법은
이클립스가 설치된 폴더에 가보면 eclipse.ini 파일이 있다. 요 파일을 살포시 에디터로 열어서 제일 상단에
예를들어 JDK 가 C:\Program Files\Java\jdk1.6.0_27 요기에 설치되 있다면
요방법 말고 다른 방법은 eclipse.exe 바로 가기를 하나 맨들어서(이미 바로가기로 실행하고 있다면 안만들어도 됨)
바로가기 아이콘 위에서 오른쪽 버튼 클릭을 뽓 한다음 속성으로 가서 바로가기탭에 있는 대상란 뒤쪽에
-vm "C:\Program Files\Java\jdk1.6.0_27\bin\javaw.exe" 요걸 추가시켜 준다음 이 바로가기를 이용해 실행해도 된다.
폴더명에 공백이 있으면 " <- 이걸로 한번 감싸줘야 한다.
요럴때 해결하는 방법으로 두가지 정도가 있는데
먼저 첫번째 방법은
이클립스가 설치된 폴더에 가보면 eclipse.ini 파일이 있다. 요 파일을 살포시 에디터로 열어서 제일 상단에
-vm JDK 설치경로\bin\javaw.exe요걸 추가시켜 주면된다.
예를들어 JDK 가 C:\Program Files\Java\jdk1.6.0_27 요기에 설치되 있다면
-vm C:\Program Files\Java\jdk1.6.0_27\bin\javaw.exe요렇게~~
요방법 말고 다른 방법은 eclipse.exe 바로 가기를 하나 맨들어서(이미 바로가기로 실행하고 있다면 안만들어도 됨)
바로가기 아이콘 위에서 오른쪽 버튼 클릭을 뽓 한다음 속성으로 가서 바로가기탭에 있는 대상란 뒤쪽에
-vm "C:\Program Files\Java\jdk1.6.0_27\bin\javaw.exe" 요걸 추가시켜 준다음 이 바로가기를 이용해 실행해도 된다.
폴더명에 공백이 있으면 " <- 이걸로 한번 감싸줘야 한다.
'이클립' 카테고리의 다른 글
이클립스 실행시 Java was started but returned exit code=1 에러가 날때. (19) | 2011.11.25 |
---|---|
이클립스(eclipse) 실행시 Java was started but returned exit code=13 에러가 날때 (4) | 2011.11.17 |
이클립에서 Javadoc 생성시 unmappable character for encoding MS949 에러가 발생할때 (2) | 2011.09.21 |
STS(SpringSource Tool Suite) 활용하기 : RequestMapping 정보 보기 (2) | 2011.09.21 |
이클립스 html, js 등등의 파일에서 에러표시 지우기 (1) | 2011.09.01 |
Spring 개발시 개발, 운영환경 프로퍼티 파일 관리하기
Spring 2011. 10. 11. 13:13
개발하면서 틈틈히 앞으로 운영될 운영환경에 배포를 하면서 확인할거 확인해야 하는 경우가 많이 있는것 같다.
하지만 개발을 하다가 운영환경에 배포를 하기 위해서는 운영환경에 맞게 이것저것 수정을 많이 해야 한다.
뭐 요런걸 방지하기 위해서 JAVA 소스에 픽스시켜 놓지 않고 변경될만한 부분을 따로 프로퍼티 파일로 빼내서 관리하는 경우가 많다.
그런데 요 프로퍼티 파일도 결국은 개발이냐 운영이냐에 따라 수정했다가~, 다시 원상복구 했다가~ 해야 한다.
뭐 대표적인 것으로는 디비접속 정보쯤 되겠다~
아무튼 Spring이 메인 프레임워크인 환경에서는 프로퍼티 파일을 아래처럼 구성하면 mode 값을 dev 나 op 로만 바꾸면 싹 적용시킬수 있다.
요렇게 설정한후 값을 가져오는 부분에서는
만약 스프링 설정 xml파일에서 값을 참조하고 싶다! 그러면
아니면 Java 클래스에서 @Value 어노테이션을 써서 가져오고 싶다면
요런 사용법을 쪼매 응용하면 다른 부분에서도 효과적으로 프로퍼티를 다룰수 있을것 같다.
하지만 개발을 하다가 운영환경에 배포를 하기 위해서는 운영환경에 맞게 이것저것 수정을 많이 해야 한다.
뭐 요런걸 방지하기 위해서 JAVA 소스에 픽스시켜 놓지 않고 변경될만한 부분을 따로 프로퍼티 파일로 빼내서 관리하는 경우가 많다.
그런데 요 프로퍼티 파일도 결국은 개발이냐 운영이냐에 따라 수정했다가~, 다시 원상복구 했다가~ 해야 한다.
뭐 대표적인 것으로는 디비접속 정보쯤 되겠다~
아무튼 Spring이 메인 프레임워크인 환경에서는 프로퍼티 파일을 아래처럼 구성하면 mode 값을 dev 나 op 로만 바꾸면 싹 적용시킬수 있다.
# mode : dev(개발), op(운영) mode=dev jdbc.mysql.driverClassName=com.mysql.jdbc.Driver jdbc.mysql.xaDriver=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource jdbc.mysql.url=${jdbc.mysql.${mode}.url} jdbc.mysql.username=${jdbc.mysql.${mode}.username} jdbc.mysql.password=${jdbc.mysql.${mode}.password} jdbc.mysql.dev.url=jdbc:mysql://ip:3306/dbname?useUnicode=true&characterEncoding=utf8 jdbc.mysql.dev.username=아이디 jdbc.mysql.dev.password=비번 jdbc.mysql.op.url=jdbc:mysql://ip:3306/dbname?useUnicode=true&characterEncoding=utf8 jdbc.mysql.op.username=아이디 jdbc.mysql.op.password=비번
요렇게 설정한후 값을 가져오는 부분에서는
만약 스프링 설정 xml파일에서 값을 참조하고 싶다! 그러면
<property name="url" value="${jdbc.mysql.url}"/>요렇게 참조하고 불러오는 값은 mode 에 설정된 값에 따라 개발모드 프로퍼티값이나 운영모드 프로퍼티 값을 읽어올 것이다.
아니면 Java 클래스에서 @Value 어노테이션을 써서 가져오고 싶다면
@Value("${jdbc.mysql.url}") String url;요렇게 값을 가져올 수 있다.
요런 사용법을 쪼매 응용하면 다른 부분에서도 효과적으로 프로퍼티를 다룰수 있을것 같다.
'Spring' 카테고리의 다른 글
Spring @ResponseBody 로 리턴시 한글이 깨질때 (0) | 2013.04.16 |
---|---|
<util:properties/> 와 Spring EL 로 값 가져오기 (0) | 2013.04.12 |
bean property 간단하게 설정하기 : http://www.springframework.org/schema/p 활용 (1) | 2011.08.22 |
ContentNegotiatingViewResolver 활용 : 하나의 RequestMapping 으로 JSP, JSON, JSONP 처리하기 (0) | 2011.08.19 |
<context:property-placeholder/> 를 사용할때 property file의 encoding 지정하기 (0) | 2011.08.03 |
Runtime 에 jar 파일 클래스패스에 추가 시키기 : RuntimeJarLoader
Java 2011. 10. 10. 13:32
자바로 만든 프로그램을 실행시킬때 java -classpath "jar 파일들 목록" "실행할 자바클래스" 요런식으로 프로그램에서 사용하는 jar 파일을
클래스패스에 추가시켜 줘야 된다.
그런데 톰캣같은 WAS 를 보면 WEB-INF\lib 폴더 아래에 있는 jar 파일들을 딱히 클래스패스에 추가시켜 주지 않아도 지가 알아서 클래스 패스에 추가시켜준다.
요런 기능과 비슷한일을 하는 클래스를 맨들어 보았다.
※ 코드 설명
일단 현재 실행중인 JVM 에 동적으로 jar 파일을 클래스 패스에 추가 시킬려면
요 코드로 시스템의 클래스 로더를 가져와야 한다.
가져온 현재 JVM 의 클래스 로더를 이용하여 jar 파일을 로딩시켜 주면 되는데
문제는 jar 파일을 로딩시켜주는 일을 하는 메소드( URLClassLoader.addURL(URL url) )가 protected 라는 것이다.
그래서 loader.addURL("jar 파일"); 요런식으로 외부에서 직접 호출이 불가능 하다.
뭔가 이유가 있어서 protected 로 만들어 놨겠지만 나의 목표를 위해서는 꼭 저 addURL 메소드를 호출해야 할 필요가 있다.
아무튼 저 addURL 메소드를 호출하기 위한 방법으로 Java reflection 을 이용했다.
요코드로 호출할 메소드를 정의하고
핵심은 요부분이 되겠다. protected 로 선언된 메소드를 public 이로 바꿔주는 일을 한다. 요렇게 public 으로 바꿔준다음
요런 Java reflection 코드를 이용해서 addURL() 을 호출해 주면, 바라던 Runtime 에 jar 파일을 클래스 패스에 추가시킬수 있다.
※ 참고 RuntimeJarLoader 사용법
요렇게 쓰면 된다~
클래스패스에 추가시켜 줘야 된다.
그런데 톰캣같은 WAS 를 보면 WEB-INF\lib 폴더 아래에 있는 jar 파일들을 딱히 클래스패스에 추가시켜 주지 않아도 지가 알아서 클래스 패스에 추가시켜준다.
요런 기능과 비슷한일을 하는 클래스를 맨들어 보았다.
import java.io.File; import java.io.FileFilter; import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader; /** * * @author stove99.tistory.com * */ public class RuntimeJarLoader { public static void loadJarIndDir(String dir){ try{ final URLClassLoader loader = (URLClassLoader)ClassLoader.getSystemClassLoader(); final Method method = URLClassLoader.class .getDeclaredMethod("addURL", new Class[]{URL.class}); method.setAccessible(true); new File(dir).listFiles(new FileFilter() { public boolean accept(File jar) { // jar 파일인 경우만 로딩 if( jar.toString().toLowerCase().contains(".jar") ){ try{ // URLClassLoader.addURL(URL url) 메소드 호출 method.invoke(loader, new Object[]{jar.toURI().toURL()}); System.out.println(jar.getName()+ " is loaded."); }catch(Exception e){ System.out.println(jar.getName()+ " can't load."); } } return false; } }); }catch(Exception e){ throw new RuntimeException(e); } } }
※ 코드 설명
일단 현재 실행중인 JVM 에 동적으로 jar 파일을 클래스 패스에 추가 시킬려면
요 코드로 시스템의 클래스 로더를 가져와야 한다.
URLClassLoader loader = (URLClassLoader)ClassLoader.getSystemClassLoader();
가져온 현재 JVM 의 클래스 로더를 이용하여 jar 파일을 로딩시켜 주면 되는데
문제는 jar 파일을 로딩시켜주는 일을 하는 메소드( URLClassLoader.addURL(URL url) )가 protected 라는 것이다.
그래서 loader.addURL("jar 파일"); 요런식으로 외부에서 직접 호출이 불가능 하다.
뭔가 이유가 있어서 protected 로 만들어 놨겠지만 나의 목표를 위해서는 꼭 저 addURL 메소드를 호출해야 할 필요가 있다.
아무튼 저 addURL 메소드를 호출하기 위한 방법으로 Java reflection 을 이용했다.
요코드로 호출할 메소드를 정의하고
Method method = URLClassLoader.class.getDeclaredMethod("addURL", new Class[]{URL.class});
핵심은 요부분이 되겠다. protected 로 선언된 메소드를 public 이로 바꿔주는 일을 한다. 요렇게 public 으로 바꿔준다음
method.setAccessible(true);
요런 Java reflection 코드를 이용해서 addURL() 을 호출해 주면, 바라던 Runtime 에 jar 파일을 클래스 패스에 추가시킬수 있다.
method.invoke(loader, new Object[]{jar.toURI().toURL()});
※ 참고 RuntimeJarLoader 사용법
// c:\lib 폴더 아래에 있는 jar 파일들 로딩 RuntimeJarLoader.loadJarInDir("c:/lib"); // 현재 실행중인 경로의 하위에 있는 lib 폴더 로딩 RuntimeJarLoader.loadJarInDir("./lib");
요렇게 쓰면 된다~
'Java' 카테고리의 다른 글
디폴트 패키지에 있는 자바 class 실행하기 ( Could not find the main class 에러날때 ) (1) | 2011.11.09 |
---|---|
WAS(Tomcat 또는 기타등등~) 메모리 사용현황 모니터링 JSP (3) | 2011.10.18 |
Jetty Scanner 를 이용한 특정 디렉토리 및 파일 변경사항(delete, change, add) 모니터링하기 (0) | 2011.10.05 |
java.sql.SQLException: Column count doesn't match value count at XXX 가 발생하는 경우 (0) | 2011.09.28 |
JDK 설치시 이것저것 물어보는 대화창 없이 커맨드창에서 한번에 쭉 설치하기(Winodws) (0) | 2011.09.27 |