라벨이 JAVA인 게시물 표시

macOS, 파이썬 API 마인크래프트 서버 설치

맥을 기준으로 한 설치 및 설정입니다. 1.마인크래프트설치 - http://minecraft.net 에서 구입하여 설치합니다. 2.파이썬 3.5.6 설치 및 설정 -brew설치 $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )” -파이썬 설치 및 확인 $ brew install python3 $ python3 —version 3.JDK SE설치 - http://www.oracle.com/technetwork/java/javase/downloads/index.html 접속 후 1.8 이상 다운로드 및 설치 -자바 설치 확인 $ java -version 4.마인크래프트 파이썬 API, SPYGOT 설치 - https://nostarch.com/programwithminecraft 접속 -Download the setup files for Mac OS (Minecraft Tools Mac.zip) 다운로드 및 압축풀기 -Install_API.command 설치 $ ./Install_API.command -server 폴더 이동 후 서버 실행 $ ./start.command 크레이그 리처드슨 저, ‘Learn to Program with Minecraft: Transform Your World with the Power of Python’ 원서 및 번역서를 기반으로 한 포스팅 게시물임을 알려드립니다. https://play.google.com/store/apps/details?id=vdream.vd.com.vdream

[JAVA] java용 날짜 구하기

[ 날짜 연산법 ] 가. 이해 및 유틸 - 시스템 시간에 대한 이해 - 날짜 계산 종합 유틸리티 나. 응용팁 시스템의 밀리초 구하기.(국제표준시각(UTC, GMT) 1970/1/1/0/0/0 으로부터 경과한 시각) ------------------------------------------------------------------ // 밀리초 단위(*1000은 1초), 음수이면 이전 시각 long time = System.currentTimeMillis ( ); System.out.println ( time.toString ( ) ); ------------------------------------------------------------------ 현재 시각을 가져오기. ------------------------------------------------------------------ Date today = new Date (); System.out.println ( today ); 결과 : Sat Jul 12 16:03:00 GMT+01:00 2000 ------------------------------------------------------------------ 경과시간(초) 구하기 ------------------------------------------------------------------ long time1 = System.currentTimeMillis (); long time2 = System.currentTimeMillis (); system.out.println ( ( time2 - time1 ) / 1000.0 ); ------------------------------------------------------------------ Date를 Calendar로 맵핑시키기 ------------------------------------------------------------------ Date d = new Dat...

[JAVA] Java 프로그램에서 POI로 Excel파일을 조작하자

다음 내용은 일본의 “월간 JavaWorld 2006년 1월호”에 게재된 내용을 번역한 것입니다. 지금은 이해하고 개발할 수준은 아니지만 , 필요할 때가 있을 것 같아서 ..... POI로 Excel파일을 조작하자 Java프로그램으로 Office문서를 조작하는 방법 POI 는 Java프로그램으로 마이크로소프트사의 Office문서를 조작하기 위한 컴포넌트 군이다. POI에 의해서 Java프로그램으로 Excel 파일의 생성 및 불러오기 방법과, Excel 파일에 한글 데이터를 설정하는 경우에 필요한 처리에 대해서 설명한다. Office 문서 조작을 용이하게 하는 컴포넌트 군 통상, Java EE 애플리케이션은, 클라이언트의 인터페이스로 Web 브라우저를 사용하며, 클라이언트의 OS에 의존하지 않고 동작한다. 그러나, 인트라넷으로 구축된 업무 시스템의 경우, 클라이언트 PC의 OS는 Windows인 경우가 많다. 또, 이러한 환경에서 시스템 데이터를 변경하는 경우에, 클라이언트 PC에서 파일을 편집하는 경우도 있을 것이다. 예를 들면, “Web 애플리케이션을 사용해서 다운로드 한 데이터를 Excel 파일로 편집하고 다시 업로드해서 데이터베이스에 반영시킨다”와 같은 경우이다. 이런 경우, Java EE 애플리케이션에서 잘 쓰여지는 것은, 데이터를 수납하는 파일로써 CSV(Comma Separated Values)형식 파일을 쓰는 방법이다. CSV 파일은, Excel 에서도 불러올 수 있지만, 그 실체는 값을 콤마(,)로 구분하여 열거한 텍스트이다. 따라서, Java 프로그램에서도 편하게 생성하거나, 불러들이거나 할 수 있어 상당히 취급하기 편하다. 그러나, 조금 복잡한 요소(매크로를 포함하거나, 여러 워크시트를 갖고 있는 Excel 파일을 취급하고 싶은 경우 등)가 제시되면 CSV 파일로는 처리할 수 없기도 있다. 이러한 경우에 위력을 발휘하는 것이, Apache Jakarta 프로젝트가 제공하는 파일 조작용 컴포넌트 군 POI 이다. 화면1:POI의 홈페이...

[JAVA] JfreeChart를 이용하여 막대 와 선그래프 그리기

[% //데이터 생성 ///외부에서 데이터가 들어 오면 아래의 변수를 통해서 데이터 셋을 받은다. // 현재는 없으므로 임의로 생성 double[] Arr_Data1 = new double[12]; //전체 double[] Arr_Data2 = new double[12]; //정상 double[] Arr_Data3 = new double[12]; //비정상 for ( int i=0 ; i[ 12; i++) { Arr_Data1[i] = Double.parseDouble(Integer.toString(i+1)); Arr_Data2[i] = Double.parseDouble(Integer.toString(i+1))*0.7; Arr_Data3[i] = Double.parseDouble(Integer.toString(i+1))*0.3; } //데이터 그래프에 셋팅 DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset(); DefaultCategoryDataset defaultcategorydataset1 = new DefaultCategoryDataset(); DefaultCategoryDataset defaultcategorydataset2 = new DefaultCategoryDataset(); for ( int i=0; i[12; i++) { defaultcategorydataset.addValue(Arr_Data1[i],"전체 접속자",Integer.toString(i+1)+ " 월"); defaultcategorydataset1.addValue(Arr_Data2[i],"정상 접속자",Integer.toString(i+1)+ " 월"); defaultcategorydataset2.addValue...

[JAVA] jfreechart_그래프 샘플

[servlet] [servlet-name]Chart2Test[/servlet-name] [servlet-class]Chart2Servlet[/servlet-class] [/servlet] [servlet-mapping] [servlet-name]Chart2Test[/servlet-name] [url-pattern]/Chart2Test[/url-pattern] [/servlet-mapping] import java.io.IOException; import java.awt.*; import java.text.SimpleDateFormat; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jfree.chart.*; import org.jfree.chart.axis.*; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.data.general.DefaultPieDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; import org.jfree.chart.plot.XYPl...

[JAVA] JFreeChart를 활용해서 서블릿에서 그래프를 그리기

JFreeChart를 활용해서 서블릿에서 그래프를 그려봅시다. [자바팁 연재-3]JFreeChart를 활용해서 서블릿에서 그래프를 그려봅시다. JFeeChart는 챠트 그림을 만드는데 특화한 고기능 라이브러리입니다. 물론, J2SE에는 Java2D라는 그림 생성용의 API가 준비되어 있으므로, JFeeChart같은 라이브러리를 쓰지않고 써도 최소한 그림을 그리는 정도는 가능합니다만, 기둥그래프같은 비교적 간단한 챠트를 만들기에도, 우선 좌표의 계산등의 세밀한 계산이나 번잡한 코딩를 해야만 합니다. 그러나, JFreeChart를 사용하는 것으로, 그래프의 기본이 되는 데이터 세트를 넘겨주는 것만으로, 기둥그래프나 원 그래프, 버블 챠트, 레이다 챠트, 주식차트 같은 여러가지 챠트를, 간단히 작성할 수 있습니다. 기본적인 그림그리기는 전부 JFeeChart가 대신해 주니까, 프로그래머는 좌표계산 같은 저 레벨의 부분에 신경 쓰지 않아도 됩니다. 또, 예를 들어, 한번 작성한 챠트를 기둥챠트로 부터 둥근챠트에 변환하고 싶다고 생각한 경우에도 , 클래스나 메소드를 바꿔 넣기 만 하면 되기 때문에, 비교적 간단히 바꿀 수 있습니다. 여러분도 이번 기회에 비주얼 챠트를 사용해서 효과적인 페이지를 작성해 보세요. ■해설 (1)JFreeChart라이브러리를 인스톨 합니다. JFreeChart를 이용하기에 앞서, 우선 라이브러리를 인스톨해야만 합니다. JFreeChart라이브러리는, 아래의 사이트에서 받습니다. http://www.jfree.org/jfreechart/ 다운로드파일 jfreechart-X.X.X.zip(X는 버전)을 풀면, 여러가자 파일이 나옵니다. 그중에서 jfreechart-X.X.X.jar, jcommon-X.X.X.jar를 어플리케이션 밑의 /WEB-INF/lib 폴더에 복사해 주세요. (2)서블릿 클래스를 정의합니다. 이번에는, 우선 클래스 내부에 지정한 배열값으로, 원 그래프를 작성해 보는 것으로 합니다. 당연히, 배열값을 얻어오는 장소...

[JAVA] 자바로 엑셀 때려잡기

자바 개발자라면 한번쯤은 Anti-MS를 외치면서, 무조건적으로 빌모씨 욕한번쯤은 해보았을 것이다. 허나 실상, 개발은 MS의 운영체제위에서 하고 있고, 이 창문이란게 없으면 넘 불편할 것도 같다. 특히, 고객은 모든 데이터를 Excel상에서 보고싶어 한다. 이런이유로 자바 개발자라고 해도, 이 엑셀을 잘 활용하여, 고객만족의 기쁨을 누려야 할 것이다. 자바로 엑셀을 핸들링 할 수 있는 방법은 크게 두가지로 나누어 진다. 1. Java Excel API 참조 : http://www.andykhan.com/jexcelapi/ 2. POI 참조 : http://jakarta.apache.org/poi/index.html 흔히 POI를 엑셀을 핸들링 하기 위한 것으로만 오해하기 쉬운데, POI 프로젝트는 마이크로소프트 OLE 2 복합도큐먼트포맷형식의 파일을 순수 자바를 이용하여 핸들링하는 APIs로 구성되어있다. OLE 2 복합도큐먼트포맷형식의 파일은 마이크로소프트 엑셀 혹은 워드파일 등의 대부분의 오피스파일들을 나타낸다. 일반적으로 엑셀에 대한 핸들링만을 수행할 때에는 Jxl을 권장한다. 엑셀을 핸들링 할 때 엑셀에서 가장 작은 단위는 알고 있듯이 "셀"이다. 모든 작업은 이 셀을 중심으로 이루어진다. 주의할 점) 1) 엑셀 쉬트상에 "C15"라는 셀에 데이터가 있다고 가정하자.( 15행 C열을 나타낸다.) 이 때 Jxl에서는 A1( 1행 A열)부터 C15까지는 실제 데이터가 없을 경우에라도 null이 아닌 빈데이터가 있다고 인식한다. 즉 D열 이상이나, 16행 이상을 접근 할 때에 null로 인식한다. 하지만 POI에서는 C15 이내에 있다 하더라도 실제 데이터가 없을 때에는 null로 인식한다. 2) Jxl에서는 각 셀의 데이터 타입을 실제 엑셀 파일에서 지정된 셀의 타입을 따르고, POI에서는 셀의 실제 데이터 형을 따른다. 예를 들어 특정 셀의 타입을 text...

[JAVA] Jakarta POI

Jakarta POI I. POI 란? 일반적으로 POI가 엑셀파일을 쓰는 컴퍼넌트로 알려져 있으나 POI는 프로젝트 이름입니다. 즉 POI는 Microsoft Format File을 액세스 할 수 있는 API를 제공합니다. (한마디로 자바에서 MS파일을 읽고 쓸수있도록 지원합니다.) POI안에는 여러 컴퍼넌트들이 있습니다. ① POIFS Microsoft의 OLE2 포맷 형식의 문서를 자바로 읽고 쓸수 있는 컴퍼넌트입니다 기본적으로 POI의 모든 컴퍼넌트들이 POIFS를 사용합니다. ② HSSF Microsoft의 엑셀파일을 읽고 쓸수 있도록 지원하는 컴퍼넌트입니다. ③ HWPF Microsoft의 워드파일을 읽고 쓸수 있도록 지원하는 컴퍼넌트입니다. 이 컴퍼넌트는 디자인 초기단계입니다. ④ HPSF Microsoft의 OLE2 포맷 형식의 문서 속성을 어플리케이션에서 사용 할수 있도록 지원하는 컴퍼넌트입니다. 현재 읽기 기능만 제공합니다 워드파일을 핸들링 하는 HWPF는 초기단계라 사용을 못하지만 기대는 되는군요 ^^ ps. 영어사전을 찾아보니 poi는 하와이의 토란 요리를 뜻하더군요. 우리나라말로 하니 자카르타 토란 프로젝트 쯤 될라나? ㅎㅎ II. 다운로드 및 설치 다운로드 받으러 갑시다~! http://jakarta.apache.org/site/downloads/downloads_poi.cgi 현재 2.5.1버젼입니다. 다운받은 파일을 압축을 풀면 *.jar 파일들이 있을겁니다 이 파일들을 자신의 어플리케이션 /lib/에 복사합시다 POI API http://jakarta.apache.org/poi/apidocs/index.html Quick Guide http://jakarta.apache.org/poi/hssf/quick-guide.html III. Formula(수식) 지원에 관해.. 엑셀을 읽고 쓸때 수식을 지원합니다. org.apache.poi.hssf.usermodel.HSSFCell의 setCellFormula(...

[JAVA] 자바 컴파일시 주의점 (플랫폼에 따른 클래스패스 구분자)

★윈도우계열 구분자 쎄미콜론 (;) ★리눅스계열 구분자 콜론 (:) 1. 리눅스 계열 javac -classpath ../lib/aaa.jar:../lib/bbb.jar -d . Ccc.java ※ 리눅스 계열에서 구분자를 ;(쎄미콜론)으로 할 경우, "-bash: ../lib/bbb.jar: 허가 거부됨" 라는 메세지가 출력. 2. 윈도우 계열 javac -classpath D:\~\lib\aaa.jar;D:\~\lib\bbb.jar -d . Ccc.java

[JAVA] javac 옵션

javac - 자바컴파일러로써, 자바코드를 작성한 소스파일(.java)을 자바 가상머신이 인식할수 있는 바이트 코드(.class) 타입으로 변환시켜주는 명령어 입니다. 사용법: javac 예를들어, Hello.java, Greeting.java 두개의 파일이 존재한다면, javac Hello.java Greeting.java javac *.java (*을 사용해서, 모든 확장자가 .java인 파일을 컴파일할수 있다.) 1) 옵션: a) -classpath: -classpath(cp) path(파일 절대 경로): 컴파일러가 컴파일 하기 위해서 필요로 하는 참조할 클래스 파일들을 찾기 위해서 컴파일시 파일 경로를 지정해주는옵션. 예를 들어, Hello.java파일이 C:\Java 디렉터리에 존재하고, 필요한 클래스 파일들이 C:\Java\Engclasses에 위치한다면, javac -classpath C:\Java\Engclasses C:\Java\Hello.java 로 해주면 된다. 만약 참조할 클래스 파일들이 C:\Java\Engclasses외의 다른 디렉터리에도 존재한다면, C:\Java\Korclasses 일경우, javac -classpath C:\Java\Engclasses;C;\Java\Korclasses C:\Java\Hello.java 그리고, 현재 디렉터리역시 포함하고 싶다면, javac -classpath .;C:\Java\Engclasses;C;\Java\Korclasses C:\Java\Hello.java 기본적으로, dos에서는 .는 현재 디렉터리를 의미하고, ..는 현재 디렉터리의 상위디렉터리를 의미한다. 또한 classpath 대신 단축어인 cp를 사용해도 된다. javac -cp C:\Java\Engclasses C:\Java\Hello.java b) -d: -d directory 클래스 파일을 생성할 루트 디렉터리를 지정합니다. 기본적으로 컴파일러는 -d옵션을 주지 않으면, 소스파일이 위치한 디렉터리에 클래스 파일을 생...

[JAVA] UserTransaction과 jdbc transaction

- UserTransaction은 JTA에 의해서 관리 되는 트렌젝션 - JDBC Transaction은 JDBC에서 해당 Connection에 대해 commit과 rollback 처리 트렌젝션 관리를 JDBC레벨에서 하느냐 JTA 레벨에서 하느냐의 차이 JDBC레벨은 하나의 Connection에 대한 트렌젝션만 가능 JTA는 여러 트렌젝션을 하나로 묶는 것이 가능합니다. 여러 Connection에 대한 트렌젝션을 묶는것도 가능

[JAVA] 자바 정규식사용

Jakarta 프로젝트의 regexp(정규식) 패키지 사용하기 개요 - 정규식(Regular Expression)이란? 정규식이란 어떠한 언어를 표현할 수 있는 문자식을 의미한다. 정규식의 이론적인 개념은 이 문서의 범위 밖이므로 접어두기로 하고 단지 정규식이 문자열의 패턴을 표현할 수 있는 것이라고만 알아두자. Perl이나 sed를 사용해본 독자들은 벌써 알겠지만 정규식은 문자열의 패턴매칭(Pattern matching)을 위하여 사용할 수 있다. 즉, 정규식을 사용하여 문자패턴을 표현하고 어떤 문자열이 그 패턴과 동일한지 알 수 있도록 해주는 역할을 한다. - 왜 정규식을 사용하는가? 자바는 이전의 프로그래밍 언어에 비해 개발이 용이하고 특히 웹 개발에 많이 이용되므로 현재 많은 인기를 누리고 있다. 그러나, 자바는 고급언어이므로 특정 작업을 세세히 구현하는 기능을 모두 제공하지는 않는다. 그런 취약점 중의 하나가 바로 자바의 문자처리 능력이다. Perl을 사용해 보았다면 Perl의 능수능란한 문자처리 능력에 놀란 적이 있을 것이다. 패턴매칭은 물론 문자열의 삭제, 삽입, 수정등이 아주 간단하게 수행된다. 자바의 문자처리 능력은 한마디로 빈약하다. String 클래스가 어느 정도 그러한 기능을 구현하긴 하지만 Perl에서와 같은 기능을 발휘하기엔 턱없이 부족하다. 그러나, 자바로 개발하다 보면 Perl에서와 같은 강력한 문자처리 능력이 긴요하게 쓰일때가 있다. 예를 들어 HTML 문서의 폼(form)에서 사용자가 주민등록번호, 생년월일, 또는 전화번호를 입력하였을 경우 어떤 특정한 형태로 입력하라고 쓰여져 있는 웹페이지들을 많이 보았을 것이다. 그런데, 사용자에게 일일이 개발자가 원하는 형태로 정보를 입력하라고 하는 것보다는 개발자가 직접 사용자가 입력한 정보에서 자기가 원하는 것을 추려서 사용하는 것이 사용자에게 불편함을 덜어줄 수 있고 많은 에러들을 피할 수 있다. 게다가 정규식을 사용하면 사용자가 어떤 형태의 데이터를 입력하든지 개발자가 원하는...