테스트 환경 

Ubuntu (16.04.2 LTS)


예전에 한번 Ubuntu 에서 JDK 설치하기를 포스팅한 적이 있었는데, 다시 설치하다보니 예전 방법에서는 스크립트 오류가 나서 새로 포스팅을 합니다. (예전 포스트 바로가기)


참고로 예전 방식대로 oracle java 홈페이지에서 rpm파일을 다운로드 받아서 alien 을 이용해서 설치 하게 되면 /usr/sbin/alternatives 를 찾을 수 없다는 에러가 나오면서 스크립트가 중단되는 에러가 발생하며 종료가 됩니다. 


그래서 쉽게 설치할 수 있는 다른 방법을 이용해서 설치해 보겠습니다.


1. 먼저 터미널 창을 엽니다. (Ctrl + Alt + t)


2. 다음과 같이 입력하여 repository 를 추가합니다. 


$ sudo add-apt-repository ppa:webupd8team/java 



3. 설치 스크립트를 업데이트하고 설치합니다.


$ sudo apt update; sudo apt install oracle-java8-installer



(2017년 3월 19일 현재 jdk9 는 정식 릴리즈 되지 않은 상태지만 추후에는 설치 패키지 명을 oracle-java9-installer 로 바꿔주기만 하면 jdk9 도 설치가 가능할거에요..)


4. 추후에 나오는 팝업은 긍정적으로 답변하면 설치가 시작됩니다. (라이센스 동의 등..)


5. 환경변수 등록을 추가하고 싶다면 아래 명령어도 실행해 봅니다.


$ sudo apt install oracle-java8-set-default




ps. 혹시 예전 방법으로 설치하다가 오류가 나서 중간에 막혀있는 경우 아래 방법을 이용해서 해결합니다. 


1. 터미널을 엽니다. (Ctrl + Alt + t)


2. 다음 경로로 이동합니다.


$ cd /var/lib/dpkg/info



3. JDK 설치 관련 파일들을 체크합니다.


$ ls -ltr | grep jdk


jdk 설치 관련 파일들이 화면에 출력됩니다.


4. 설치하던 버전에 맞는 파일들을 삭제합니다. (잘못 삭제하면 다른 문제가 생길 수 있으니 주의!)


5. 다음 명령어로 패키지 삭제를 완료합니다.


$ sudo apt autoremove





신고
 
 
Posted by ShineUm
분류없음2016.03.18 22:00
 
 

Maven 이란?

표준화된 프로젝트 관리를 위한 오픈소스 프레임워크. 프로젝트를 생성해서 빌드하고, 테스트, 리포트, 패키징 및 배포를 해주는 툴로 생각하면 된다. 또한 Maven repository 등을 이용해서 Java 프로젝트에서 필요로 하는 의존성 라이브러리도 관리해 준다.


Maven 을 이용하는 경우 다음과 같은 장점이 있다.

- 프로젝트의 디렉터리 구조를 표준화하여 개발자들이 다른 사람이 만든 프로젝트의 소스코드나 리소스 위치를 쉽게 파악할 수 있다.

- 대부분의 자바 프로젝트에서 참조해서 사용하는 오픈소스 의존성 라이브러리들을 일일이 찾아서 추가할 필요 없이 쉽게 관리할 수 있다.

배포시에 불필요한 테스트코드를 포함시키지 않으면서, 테스트 코드를 쉽게 작성하고 결과 확인이 가능하다.


간단한 Maven 사용법

* 원래 Maven 파일을 설치하고, 환경변수를 등록한 후에 콘솔 명령어를 이용해서 사용할 수 있으나, 이 포스팅에서는 eclipse 플러그인을 이용해서 사용하는 방법만을 기술하겠습니다. 


0. 사용 환경 

- JDK 1.8

- eclipse Mars (eclipse Mars 에는 기본적으로 Maven 플러그인이 설치되어 있음.)


1. eclipse 에서 File > New > Project > Maven > Maven Project 를 선택해서 새로 프로젝트를 생성한다.

Group Id 에는 기본 패키지 이름을, Artifact Id 에는 프로젝트 이름을 적어 주면 된다.


2. 일반적으로 src/main/java 에 프로젝트에 필요한 코드를 작성하게 되고, src/test/java 에 테스트에 필요한 코드를 작성하게 된다. 기본으로 App.java 코드와 AppTest.java 테스트 코드가 생성된다.


3. Maven은 pom.xml 파일로 프로젝트를 관리를 하게 되는데, 의존성 라이브러리를 추가하기 위해서는 pom.xml 파일의 dependencies 항목을 직접 편집해도 되고, eclipse Package Explorer 상에서 해당 프로젝트를 오른쪽 클릭. Maven > Add dependency 를 선택해서 나오는 팝업창에 필요 정보들을 입력하면 된다.

예를 들어, Guava 라이브러리를 추가하고 싶다면, http://mvnrepository.com/ 사이트에서 guava를 검색해서 라이브러리를 찾을 수 있다.

검색결과는 http://mvnrepository.com/artifact/com.google.guava/guava/19.0 이며,

pom.xml 에 붙여 넣을 수 있는 코드가 제공된다.



pom.xml 에 dependencies 항목에 직접 붙여 넣어도 되고, Add dependency 팝업에 필요한 정보 (groupId, artifactId, version) 를 아래와 같이 입력해도 된다.



Package Explorer 상에서 해당 프로젝트 이름을 오른쪽 클릭. Maven > Update project 를 실행하면 Maven Dependencies 에 필요한 라이브러리가 추가된다.



Maven 이 관리하는 의존성 라이브러리는 Maven의 로컬 저장소에 다운로드 되어 관리가 되며, 같은 라이브러리의 경우 다른 프로젝트에서 사용될 경우 다시 다운로드 하지 않고 기존에 받아 놓은 파일을 사용하게 된다.


4. Maven 을 이용해서 배포용 빌드를 생성하는 방법은 다음과 같다.

Package Explorer 상에서 해당 프로젝트 이름을 오른쪽 클릭. Run As > Maven build 를 실행한다.

처음 실행시 Configuration 설정 화면이 나오는데, Goals에 package 라고 적어준다.

실행을 하면 Compile > Test > Build phase 가 순서대로 진행이 되고, 문제가 없다면 target 폴더에 jar 파일이 생성된다.


5. 배포용 빌드를 생성할 때, 실행이 가능한 jar 형태로 패키지를 만들 수 있다.

eclipse Package Explorer 상에서 해당 프로젝트를 오른쪽 클릭. Maven > Add Plugin 을 이용해서 플러그인을 추가하면 되는데,

configuration 설정이 필요하니 pom.xml을 직접 편집해서 작성한다.

여기서 build > plugins > plug > configuration > archive > manifest > mainClass 를 자신의 프로젝트의 main 클래스로 지정한다.







신고
 
 
Posted by ShineUm
 
 

오라클 홈페이지에서 서버 버전에 맞는 JDK를 다운로드 받는다. 

http://www.oracle.com/technetwork/java/javase/downloads

여기서는 jdk-8u60-linux-64.rpm 파일을 다운로드


rpm 명령어를 이용해서 JDK를 설치

 # sudo rpm -ivh jdk-8u60-linux-x64.rpm


설치가 제대로 되었는지 다음 명령어로 확인

 # java -version

제대로 설치되었다면 버전 정보가 표시된다.

 # javac

javac 사용법이 표시된다.



신고
 
 
Posted by ShineUm
분류없음2015.09.12 07:23
 
 

예전에는 맥에 불필요한 시작 프로그램이 별로 없었는데, 요즘은 정말 많이 늘어나고 있습니다.

참고로 Adobe 프로그램을 Trial 로 잠시 설치하면 Adobe Updater, AdobeCreativeCloud 등의 데몬이 시작시에 로딩되어 상당히 거슬리는데요,

그 외에도 Oracle Java Updater 라던지, 기타 프로그램들이 부팅시에 실행되는 것은 컴퓨터 성능 저하의 원인이 됩니다.

꼭 필요한 것들 이외에는 제거해야하는데, 제대로 제거가 안되게 만든건 바이러스나 다름 없다고 생각합니다.


맥에서는 launchctl 을 통해서 시작 프로그램들을 관리할 수 있습니다. (아래 매뉴얼 참고)

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/launchctl.1.html


좀 번거롭겠지만 Terminal 에서 아래 커맨드를 이용해서 로딩된 프로그램 리스트를 확인합니다.

launchctl list


상당히 많은 리스트가 나올텐데 그중에 필요 없어 보이는 서비스에 대해서는 다음의 명령어로 제거를 합니다.

ex) AdobeCreativeCloud

launchctl unload -w /Library/LaunchAgents/com.adobe.AdobeCreativeCloud.plist


아래 경로에 관련 파일들이 있습니다. 찾아서 불필요한 파일들을 제거하시면 부팅시에 로딩되는 것을 막을 수 있습니다.

     ~/Library/LaunchAgents         Per-user agents provided by the user.
     /Library/LaunchAgents          Per-user agents provided by the administrator.
     /Library/LaunchDaemons         System wide daemons provided by the administrator.
     /System/Library/LaunchAgents   Mac OS X Per-user agents.
     /System/Library/LaunchDaemons  Mac OS X System wide daemons.

시스템 관련 데몬 이외에는 대부분 삭제해도 상관없겠지만 잘 모르시면 꼭 백업하시고 삭제하시기 바랍니다.



신고
 
 
Posted by ShineUm
프로그래밍/Java2012.05.26 00:57
 
 


import java.util.Properties;


import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;


public class GmailSMTP

{

    public static void sendMail(String account, String auth, String to, String subject, String msg, boolean isSSL, boolean isHtml)

    {

        final String username = account;

        final String password = auth;


        String mailFrom = username;

        String mailTo = to;


        Properties props = new Properties();

        props.put("mail.smtp.auth", "true");

        props.put("mail.smtp.host", "smtp.gmail.com");


        if (isSSL)

        {

            props.put("mail.smtp.socketFactory.port", "465");

            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

            props.put("mail.smtp.port", "465");

        }

        else

        {

            props.put("mail.smtp.starttls.enable", "true");

            props.put("mail.smtp.port", "587");

        }


        Session session = Session.getInstance(props, new javax.mail.Authenticator()

        {

            protected PasswordAuthentication getPasswordAuthentication()

            {

                return new PasswordAuthentication(username, password);

            }

        });


        try

        {

            Message message = new MimeMessage(session);

            message.setFrom(new InternetAddress(mailFrom));

            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mailTo));

            message.setSubject(subject);


            if (isHtml)

                message.setContent(msg, "text/html");

            else

                message.setText(msg);


            Transport.send(message);

        }

        catch (MessagingException e)

        {

            throw new RuntimeException(e);

        }

    }

}

 


ps. mail.jar 가 필요함


신고
 
 
Posted by ShineUm
프로그래밍/Java2011.08.23 00:45
 
 

@ 준비물

아래 링크에서 적당한 버전의 Java SDK 다운로드 합니다.

http://www.oracle.com/technetwork/java/javase/downloads/index.html

 

아래 링크에서 적당한 버전의 eclipse 다운로드 합니다.

http://www.eclipse.org/downloads/

 

아래 링크에서ant 다운로드 합니다.

http://ant.apache.org/bindownload.cgi

 

아래 링크에서 jsch 다운로드 합니다.

http://www.jcraft.com/jsch/

 

@ 설치

Java default 폴더에 설치하는 것을 권장합니다.

eclipse My Document 압축을 풀면 됩니다.

ant eclipse 설치 경로 아래 있는 plugins 폴더에 압축을 풀어줍니다.

jsch ant 폴더 아래 있는 lib 폴더에 jar 파일만 추가합니다.

 

eclipse 실행합니다.

Window > Preferences > Ant > Runtime

Classpath 탭에 있는 Ant Home 버튼을 눌러서 압축을 ant 경로를 지정합니다.

신고
 
 
Posted by ShineUm
TAG ant, eclipse, java, jsch
프로그래밍/Java2010.03.28 23:50
 
 

public boolean saveImage(String fileName, BufferedImage bufferedImage) throws Exception
{
File file = new File(fileName);
return ImageIO.write(bufferedImage, "png", file);
}

신고
 
 
Posted by ShineUm

티스토리 툴바