본문 바로가기

Programming/JAVA

이클립스(eclipse) 단축키 ctrl + .(period) : warning, compile error 혹은 syncronize, compare시의 다른부분으로 이동하는 단축키ctrl + ,(comma) : 위의 키와 동일하나 역방향으로 이동ctrl + 1 : Quick Fix - 이클립스에서 어떻게 고칠것인지에대한 힌트나 제안을 해주는 기능Ctrl + Space : 입력 보조장치(Content Assistance) 강제 호출Ctrl + 마우스커서(혹은 F3) : 클래스나 메소드 혹은 멤버 링크타기.Ctrl + (Shift) + k : 선댁 문자열 (역)검색Alt + 위아래 : 구문 옮기기Ctrl + Alt +아래 : 행 복사Ctrl +S+f : 코드 자동정렬Ctrl + Shift + 넘버패드 / or 넘버패드 * : 전체폴딩 닫기.. 더보기
java 반올림(소수 몇재짜리 반올림) 자바 Math 클래스에서 실수값 반올림이나 올림, 버림, 절대값을 구해주는 메서드가 있다. 반올림static long Math.round(double a)static int Math.round(float a)예) System.out.println(Math.round(100.56)); //결과: 101 올림static double ceil(double a) 예) System.out.println(Math.ceil(100.56)); //결과: 101.0 버림static double floor(double a) 예) System.out.println(Math.floor(100.56)); //결과: 100.0 절대값static double abs(double a)static float abs(float a)st.. 더보기
MAC OS X 에 JDK 설치하는 방법 출처 : http://ishappy.tistory.com/entry/MAC-OS-X-%EC%97%90-JDK-%EC%84%A4%EC%B9%98%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95 JDK설치 방법은 매우 쉽다. .dmg 로 제공해주기 때문에 다운받고 환경변수 설정만 해주면 된다. 설치 방법은 다음과 같다. 1. JDK 를 다운받는다. http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=otnjp 위 링크에서 JDK를 다운 받는다. 다운받은 파일을 더블클릭해 설치한다. 2. 환경변수를 설정한다. 일단 터미널을 실행한다. cd /Library/Java/JavaVirtualMachines.. 더보기
이클립스 실행시 JVM 지정 이클립스를 실행할 때 환경변수에 JAVA_HOME을 넣지 않는 경우 이클립스 시작시 다음과 같은 메세지를 출력한다.(필자는 자바 업데이트를 수행하였는데 갑자기 이런 문제가 발생하였다...) 이는 이클립스가 구동될 때 JVM을 못찾아서 그런 것이다. JAVA_HOME 환경변수를 잡으면 해결이 되긴 하지만, 그렇게 되면 다른 어플리케이션에도 환경변수가 영향을 미칠 수 있기 때문에 이클립스에만 jvm 위치를 지정하는 경우가 좋을 수도 있다. 방법은 eclipse.ini 파일을 편집하여 다음과 같이 빨간 부분을 추가 해주면 해결된다. -startupplugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar--launcher.libraryplugins/org.eclips.. 더보기
톰캣 실행 안될 때 * no JDK found - please set JAVA_HOME * no JDK found - please set JAVA_HOME 라고 뜨면서 실행 안될 때 sudo gedit /etc/default/tomcat7 (tomcat6인 사람은 /ect/default/tomcat6)으로 파일 열어서 JAVA_HOME 부분 찾은 다음 앞에 #처리 되어있으면 # 삭제해주고 JAVA_HOME=/usr/lib/jvm/openjdk어쩌구 에서 자신의 경로로 잘 맞춰준다 나의 경우 /usr/lib/jvm/jdk1.8.0으로 변경 후 sudo service tomcat7 start 해주니 잘 작동되었음. 출처 : http://stove99.tistory.com/154 의 마지막 부분[출처] 톰캣 실행 안될 때 * no JDK found - please set JAVA_HOME|작성자.. 더보기
JUnit Thread Testing 출처 : http://jjeong.tistory.com/791메인 class 에 multi thread 로 구현된 코드를 junit test 로 테스트 할려고 할때 복잡 하지 않고 단순 테스트용 도로만 그냥 돌리고 싶다면 test code 에 sleep(적당한 시간) 을 주면 테스트 가능 합니다. 그냥 돌리게 되면 test 수행이 끝남과 동시에 thread 는 종료가 되어서 실제 thread 내부 코드가 잘 동작 하는지 확인이 안됩니다. 아래는 그냥 테스트 한 코드이니 참고 정도만 하세요. @Testpublic void testClientIndexer() throws Exception { ClientIndexer clientIndexer ; clientIndexer = new ClientIndexer().. 더보기
Test는 JUnit으로! 출처 : http://www.nextree.co.kr/p11104/1. JUnit이란?JUnit은 단위 테스트 도구입니다. 외부 테스트 프로그램(케이스)을 작성하여 System.out으로 번거롭게 디버깅하지 않아도 됩니다. 프로그램 테스트 시 걸릴 시간도 관리할 수 있게 해주며 오픈 소스이며, 플러그인 형태로 Eclipse에 포함되어 있습니다. 하나의 jar 파일이 전부이며 사용법도 간단합니다. 어느 정도 개발이 진행되면 프로그램에 대한 단위 테스트는 반드시 수행해야 합니다. JUnit은 보이지 않고 숨겨진 단위 테스트를 끌어내어 정형화시켜 단위 테스트를 쉽게 해주는 테스트용 Framework 입니다. JDK 1.4에서 추가된 assertXXX를 사용하여 Test를 진행합니다. JUnit은 테스트 결과를.. 더보기
java.lang.Object 메쏘드 분석 6 - wait , notify 출처 : http://egloos.zum.com/iilii/v/5565036 wait과 notify는 한 묶음으로 같이 이해하셔야 합니다. wait은 아래와 같이 3가지 오버로딩된 메쏘드로 있습니다. public final void wait() throws InterruptedException : 누군가 깨울 때까지 기다리겠음. 안 깨워주면 안 일어남. public final native void wait(long timeout) throws InterruptedException : 누군가 깨워주거나 timeout 까지 안 깨워주면 알아서 일어나겠음. public final void wait(long timeout, int nanos) throws InterruptedException : 누군가 깨워주거.. 더보기
enum의 뿌리를 찾아서 출처 : http://www.nextree.co.kr/p11686/ 이번 글에서는 자바 1.5버전부터 새롭게 추가된 열거형 상수인 enum(enumeration)에 대해 알아보겠습니다. 열거형은 서로 연관된 상수들의 집합입니다. 이번 글은 enum 정의와 enum 사용방법, 그리고 enum 활용법을 살펴 봅니다. 1. enum이란?관련이 있는 상수들의 집합입니다. 자바에서는 final로 String과 같은 문자열이나 숫자들을 나타내는 기본 자료형의 값을 고정할 수 있습니다. 이렇게 고정된 값을 상수라고 합니다. 영어로는 constant입니다. 어떤 클래스가 상수만으로 작성되어 있으면 반드시 class로 선언할 필요는 없습니다. 이럴 때 class로 선언된 부분에 enum이라고 선언하면 이 객체는 상수의 .. 더보기
[Java] 자신을 호출한 이전 메소드 혹은 클래스 정보 보기 -M.javaColored By Color Scripter™12345678910111213141516171819202122232425package test; public class M { public static void main(String[] args) { new M().a(); } void a(){ b(); } void b(){ StackTraceElement[] a = new Throwable().getStackTrace(); for(int i = a.length - 1; i > 0 ; i--){ System.out.print("클래스 - " + a[i].getClassName()); System.out.print(", 메소드 - "+a[i].getMethodName()); System.out.p.. 더보기
Make a Java Daemon with Jsvc on Linux Daemon 이란 백그라운드로 실행되면서, 사용자의 인터페이스(tty)가 없는 프로그램을 말한다. 우리가 흔히 사용하는 리눅스 서비스들은 대부분 데몬으로 동작하며, -d로 끝나는 프로그램(예: sshd, syslogd)이 모두 해당된다. 리눅스 명령인 nohup으로 백그라운드 구동은 가능하지만, kill 명령으로 종료해야 한다.따라서 비정상 종료시의 처리를 하려면, OS로부터 signal을 받아야 하므로 데몬으로 구동시켜야 한다. 데몬과 백그라운드 프로그램의 차이 Apache Commons Daemon에서 제공하는 Jsvc를 이용하여, 간단한 데몬 프로그램을 작성해 보자.(우리가 잘 알고 있는 Tomcat도 Jsvc를 이용하여, 데몬으로 프로세스를 실행한다고 한다.) JsvcDaemon.zip아래 내용대.. 더보기
Java Data Structure 더보기
Get Column Names From ResultSet for MySQL 출처 : http://www.java2s.com/Code/Java/Database-SQL-JDBC/GetColumnNamesFromResultSetforMySQL.htm import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; public class GetColumnNamesFromResultSet_MySQL { public static Connection getConnection() throws Exception { String driver = .. 더보기
Open JDK와 Oracle JDK 차이 참고 링크 => http://helloworld.naver.com/helloworld/1219 OpenJDK는 2007년 Java의 오픈소스화를 위하여 Sun에서 저작권자가 제공을 거부한 컴포넌트들을 제외한 JDK를 제공하여 시작된 프로젝트이다. 이 OpenJDK와 별개로 Oracle에서 제공하는 JDK를 구분하기 위하여 Oracle JDK 라고 부른다. [출처] Open JDK, Oracle JDK (개발자로 살아남기) |작성자 118k 더보기
java oracle 설치 출처 : http://tiveloper.tistory.com/392 우분투나 기타 리눅스 배포판에 기본적으로 설치된 java는 OpenJDK다.. Open소스 JDK란 말인데, 왠지 모르게 거부감이 든다.. 그래서 난 늘 Oracle Java를 추가로 설치하곤 한다.. http://openjdk.java.net/projects/jdk6/ 에 보면 위 다이어 그램에 대한 설명이 나와 있는데,, 뭐,,다 귀찮고,,난 그냥 FM이 좋다.~~ 일단 난 JDK 6 버전을 설치해야 한다.. 이유는 묻지 마세요~~ 문제는 오라클에서 우분투 설치용을 제공하지 않는다는 점..따라서 제3의 repository를 등록해야 함. sudo apt-get install python-software-properties sudo a.. 더보기
System OS Check public class OSCheck { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(System.getProperty("os.name")); } } 더보기
[정리] 자바 Tip & Source 정리 (2010년 11월 23일) Java_소스및_팁2 (iText을 이용한) 실행시 html, pdf, rtf 문서 파일 생성하기 (iText을 이용한) 실행시 pdf 문서내 모든 페이지에 watermark (워터마크) 추가하기 (iText을 이용한) 실행시 pdf 문서안 북마크(bookmark) 생성하기 (iText을 이용한) 자바로 실행시 웹페이지안에 자바스크립트 코드 추가하기 (JExcel API 이용한) 서블릿에서 엑셀파일에 내용 출력하기 (JExcel API 이용한) 엑셀파일의 내용 읽기 (JExcel API 이용한) 엑셀파일의 내용 저장하기 (JExcel API 이용한) 엑셀파일의 내용을 CSV 포맷 파일로 저장하기 (JExcel API 이용한) 웹브라우져에서 서블릿에 업로드한 엑셀파일 읽기 (Spring) SimpleJdb.. 더보기
Java를 이용한 OS 정보 알아내기 Foo.javapublic class Foo { public static void main(String[] args) { System.out.println("운영체제 종류: " + System.getProperty("os.name") ); System.out.println("자바 가상머신 버전: " + System.getProperty("java.vm.version") ); System.out.println("클래스 버전: " + System.getProperty("java.class.version") ); System.out.println("사용자 로그인ID: " + System.getProperty("user.name") ); }} 실행 결과운영체제 종류: Windows 2000자바 가상머신 버전: .. 더보기
[팁] 이클립스 컬러 테마 설정 (Eclipse color themes) 출처 : http://javaking75.blog.me/140211967574 1. 이클립스 메뉴에서 Help -> Eclipse Marketplace 선택하고 2. 입력란에 "theme" 이라고 입력 후 엔터를 누르면 Eclipse Color Theme이라는 항목이 검색된다. Install 버튼을 클릭! 그럼 설치가 완료되고 이클립스가 재시작이 되면 Window -> Preferences 에 Color Theme 항목이 추가 되어있는것을 확인할수있다. 여기서 원하는 테마를 선택하여 적용하면된다. 다시 원상태로 돌아가고 싶다면 Default를 적용하면된다. [참고] 이클립스 스타일(테마) 제공해주는 사이트 http://www.eclipsecolorthemes.org/ [출처] [팁] 이클립스 컬러 테마 .. 더보기
Eclipse 테마 바꾸기 https://github.com/slg1119/eclipse-ui-theme 더보기
다른 파일의 있는 내용 읽어오기 import java.io.IOException;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;/*from w w w . j av a 2s .c o m*/public class Main { public static void main(String[] args) { Path wiki_path = Paths.get("C:/tutorial/wiki", "wiki.txt"); try { byte[] wikiArray = Files.readAllBytes(wiki_path); String wikiString = new String(wikiArray, "ISO-8859-1"); System.out.println(wikiS.. 더보기
Thread, 압축 및 배포 //===========================================================================// 본 내용은 2002년 제가 Java 강의를 수강하며 정리 했던 내용을 기본으로 하여 정리하였습니다. - 마침 java 기초를 전파할 기회가 생겨 핑계김에 정리해 가려 합니다. 작성자 : litwave //---------------------------------------------------------------------------// 1. 압축 및 배포 3. Thread //---------------------------------------------------------------------------// 1. 압축 및 배포 1) 압축 : jar -c.. 더보기
[자바] 스레드(Thread)에 대하여 멀티스레드와 API에 대하여 다른 언어와 마찬가지로 자바에서도 스레드(Thread)라는 용어를 사용한다. 우선 정의를 살펴보면 '시작점과 종료점을 지니는 일련의 하나의 작업 흐름'을 스레드라고 한다. 그렇다면 멀티 스레드란 무엇인가? 여러분이 인터넷에서 파일을 다운로드 받아 본 경험이 있을 것이다. 그것이 바로 멀티 스레드라고 할 수 있다. 이러한 멀티스레드는 CPU의 시분할 개념(Time Sharing)의 작동 방식에 근거한다. 시분할 개념이란 프로그램에 정해진 순서대로 단시간(약 100밀리초)씩 실행 시간을 주어 이를 되풀이 해서 일정 기간에 복수의 프로그램을 실행할 수 있는 시스템, 즉 시간을 세분화해서 사용하는 한편 동시에 복수의 일을 처리하는 것처럼 보이는 방식이다. (1) java.lang.T.. 더보기
썸네일 이미지 퀄리티 문제 출처 : http://goldenpig.egloos.com/2955545 [펌] http://blog.empas.com/netroot/14467977 이미지 크기 변환시 품질 유지 방법 필자가 쓴 'JSP 2.0 프로그래밍' 책에서 자바 1.4부터 추가된 ImageIO 클래스를 사용해서 썸네일 이미지를 작성하는 방법을 소개한 바 있다. 이 때 소개한 코드는 다음과 같다. public static void resize(File src, File dest, int width, int height) throws IOException { BufferedImage srcImg = ImageIO.read(src); int srcWidth = srcImg.getWidth(); int srcHeight = srcImg.. 더보기
[자바] 자바 썸네일 이미지 만들기 package test; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import javax.imageio.ImageIO; public class Thumbnail { public Thumbnail(){ } public static void createImage(String loadFile, String saveFile, int zoom) throws IOException{ File save = new File(saveFile); FileInputStream fis = new FileInpu.. 더보기
파일경로와 파일명을 입력해주고 경로와 파일명 추출하기 public class Global { public static String getFileName(String fullPath) { int S = fullPath.lastIndexOf("\\"); int M = fullPath.lastIndexOf("."); int E = fullPath.length(); String filename = fullPath.substring(S+1, M); String extname = fullPath.substring(M+1, E); String extractFileName = filename + "." + extname; return extractFileName; }} 더보기
배포 자동화 툴 출처 : http://javajigi.net/pages/viewpage.action?pageId=282656847 목적 애플리케이션을 여러 대의 서버에 배포하는 과정에 대한 아이디어를 얻는다. 괜찮다면 해당 툴을 사용해 배포를 자동화하는 과정에 대해서도 살펴보면 좋겠다. 분석툴 ControlTier, Capistrano, Fabric, Func 각 툴의 특징ControlTier 자바로 구현되어 있음. 웹 기반으로 활용하는 것이 가능함. 모든 스크립트 언어를 모두 지원 가능함. configuration management tool ControlTier 소개 및 Fully Automated Provisionin : 다양한 배포툴에 대한 참고 자료가 모아져 있다. 위 툴에 대한 분석 내용도 포함되어 있다. N.. 더보기
[eclipse] Ctrl + Shift + F 로 코드 정리할 때 줄바꿈 길게 하기 난 코드가 깔끔한 걸 좋아하기 때문에 이클립스의 코드 정리 기능을 자주 사용한다. 그런데 한 가지 불만은 한 줄에 들어가는 길이가 너무 짧은 거다. 줄바꿈이 많으면 정신없다. 줄바꿈 길이를 늘리고 싶다면 window > preferences > Java > Code Style > Formatter 로 간다. 거기에서 New를 누른다. 자신만의 스타일을 사용하겠다고 알려 주는 것이다. default로 설정돼 있는 것은 Edit할 수 없기 때문에 반드시 New를 눌러야 한다. 그리고 Line Wrapping 탭에서 Maximum Line Width를 수정해 준다. 기본은 80이다. 나느 160으로 고쳤다. 아래는 스크린샷. ▷이미지 1.5배 확대 ▷이미지 1.6배 확대 더보기
Java에서 WebSocket 쓰기 WebSocket 쓰는 법. http://java-websocket.org/ 위 url에서 zip 파일 받음. 압축 풀고 TooTallNate-Java-WebSocket/src/main/example/CahtServer.java 위 파일을 참고해서 WebSocketServer 작성하면 됌. (ChatClient.java가 WebSocketClient) TooTallNate-Java-WebSocket/dist/java_websocket.jar 파일을 자바 프로젝트에 포함해야함. 더보기
[NIO] JAVA NIO의 ByteBuffer와 Channel로 File Handling에서 더 좋은 Perfermance 내기! (펌) http://eincs.net/2009/08/java-nio-bytebuffer-channel-file/ 기존의 Java IO는 다른 언어에 비해 매우 느리다는 이야기가 많이 있습니다. 내부적으로 어떻게 돌아가는지 대략적으로나마 파악한다면 그럴 수 밖에 없었다는 사실을 알게 되실겁니다. 하지만 jdk1.3부터는 Java IO의 한계를 보완한 Java NIO를 사용하여 I/O에서 속도 향상을 낼 수 있습니다. 그러나 NIO의 사용법은 기존 I/O와는 매우 달라 배우기가 생각만큼 쉽지는 않습니다. 이번 포스팅에서는 Java NIO에 대해 알아보고, 예제를 통해 FileHandling의 Performance를 향상시키는 간단한 예제를 다뤄 NIO에 쉽게 접할 수 있도록 하겠습니다. 생각보다 길어져서 포.. 더보기