@Setter
@Getter
@Builder
public class PersonDto {
private int age;
private String name;
}
@NoArgsConstructor
@AllArgsConstructor
@Setter
@Getter
@Builder
public class PersonDto {
private int age;
private String name;
}
@NoArgsConstructor
@AllArgsConstructor
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
2. 샘플코드
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 EmailSender {
// 구글 이메일
static final String user_email= "XXXXX@gmail.com";
// 구글 비번
static final String user_pw = "XXXXX";
static final String smtp_host = "smtp.gmail.com";
static final int smtp_port = 465; // TLS : 587, SSL : 465
public static void Send() throws Exception {
Properties props = System.getProperties();
props.put("mail.smtp.host", smtp_host);
props.put("mail.smtp.port", smtp_port);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.trust", smtp_host);
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user_email, user_pw);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(user_email));
// 받는 이메일
message.setRecipients(
Message.RecipientType.TO,
InternetAddress.parse("XXXXX@gmail.com, XXXXX@naver.com")
);
// 제목
message.setSubject("테스트 메일입니다.");
// 내용
message.setText("이것은 테스트 메일입니다. \n\n 잘 갔나요?");
// 발송
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
}
위 코드를 실행했더니
Application-specific password required
오류가 발생한다.
구글링 해보니 2차인증 설정시 발생하는 오류라고 함
4) 맨밑에 앱 비밀번호 선택
5) 앱 선택 : 메일, 기기 선택 : windows 컴퓨터, 생성 클릭 하면 16자리 비밀번호가 생성된다.
6) 생성된 비밀번호를 user_pw 로 사용하면 메일 잘 발송된다.
끝
Jsoup.connect("/test.json")
.ignoreContentType(true)
.method(Method.GET)
.execute();
혹은 header에 ContentType 을 json이나 xml 로 지정해도 될 듯.
끝.
1. json-simple 의존성 추가
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>
String jsonText = "{ \"test\" : \"1234\" }";
JSONParser parser = new JSONParser();
Object obj = parser.parse(jsonText);
JSONObject jsonObj = (JSONObject) obj;
String testValue = jsonObj.get("test").toString();
System.out.println("testValue : " + testValue);
http://www.rgagnon.com/javadetails/java-0593.html
유용한 팁이네요. 다른 운영체제는 또 다른 방법을 찾아야겠지만 ^^;
The Microsoft TASKLIST.EXE is used to dump the list of the currently running processes. It is similar to tasklist window but for the console.
From a Java program, we are launching TASKLIST.EXE and capture its output.
Note : TASKLIST.EXE is not included the HOME edition of XP. But you can download it from Web, for example : http://www.computerhope.com/download/winxp.htm.
import java.io.*; import java.util.*; public class WindowsUtils { public static List<String> listRunningProcesses() { List<String> processes = new ArrayList<String>(); try { String line; Process p = Runtime.getRuntime().exec("tasklist.exe /fo csv /nh"); BufferedReader input = new BufferedReader (new InputStreamReader(p.getInputStream())); while ((line = input.readLine()) != null) { if (!line.trim().equals("")) { // keep only the process name line = line.substring(1); processes.add(line.substring(0, line.indexOf("""))); } } input.close(); } catch (Exception err) { err.printStackTrace(); } return processes; } public static void main(String[] args){ List<String> processes = listRunningProcesses(); String result = ""; // display the result Iterator<String> it = processes.iterator(); int i = 0; while (it.hasNext()) { result += it.next() +","; i++; if (i==10) { result += "\n"; i = 0; } } msgBox("Running processes : " + result); } public static void msgBox(String msg) { javax.swing.JOptionPane.showConfirmDialog((java.awt.Component) null, msg, "WindowsUtils", javax.swing.JOptionPane.DEFAULT_OPTION); } }
자바프로그램(Java Application)을 실행시켜 주는 명령어이다.
사용법:java <options> <classfiles> <argument> 또는
java <options> -jar file.jar <argument>
options: 옵션
classfiles: 호출될 클래스 파일 이름
file.jar: 호출될 jar파일 이름
argument:main함수에 파라미터로 보내질 문자열
예를들어, main함수를 포함하는 Hello.class 파일이 존재할경우,
java Hello 로 프로그램을 실행시킬수 있는데, 확장자인 class는 생략할수 있지만,
대소문자는 구별하므로, 정확하게 기입해야 한다.
java Hello Greeting 처럼 Greeting을 덧붙일경우, main함수에 문자열인자로 Greeting을 보낼수 있다.
a) -client:
자바 HotSpot Client VM을 선택한다. (디폴트 값이다)
b) -server:
자바 HotSpot Server VM을 선택한다.
c) -classpath (-cp):
참조할 클래스 파일 패스를 지정하는데, jar파일, zip파일, 클래스파일의 디렉터리 위치를 기술한다.
각 클래스파일 패스는 콜론(:)을 통해서, 분리시켜 기술한다
자바VM은 자바프로그램을 로딩시, -classpath로 지정된 클래스 패스나, java플래폼이 설치된, 운영체제에서의
환경변수로 지정된, 클래스패스를 통해서, 클래스 파일들을 참조하게 된다.
d) -D <property name>=<property value>:
시스템의 property 값을 설정한다.
ex) java -Djava.library.path=. HelloWorld
자바의 시스템 property(속성)중 "java.library.path"값을 "." (현재디렉터리)로 지정해서, HelloWorld 실행시켜라는 의미 이다.
위와같이 자바VM에 지정된 속성을 실행시 -D옵션을 사용해서, 변경, 지정할수 있다.
e) -jar 파일이름:
jar파일로 압축되어져 있는 자바 프로그램을 실행시킨다.
클래스 파일이름 대신 jar파일을 사용해서, 압축되어져 있는 자바 프로그램을 실행시킬수 있는데, 위프로그램이 제대로 실행되어지기 위해서, Jar파일안의 manifest라는 텍스트 파일에 Main-Class:classname 같은 형태의 텍스트 라인이 포함되어 있어야 한다.
그리고, 여기에 기술된 classname은 main함수를 포함하고 있는 클래스 이름이 되어야 한다.
f) -verbose:
자바프로그램 실행되어지는 정보를 화면에 출력해준다.
-verbose:class
로딩되어지는 각클래스들의 정보를 화면에 출력한다.
-verbose:gc
garbage collection 이벤트를 화면에 출력한다.
-verbose:jni
native 함수들과 다른 자바 native 인터페이스 사용에 대한 정보를 출력한다
g) -version:
현재 JVM의 버젼 정보만 출력한다
h) -showversion:
현재 JVM의 버젼정보를 출력한다.
java -showversion HelloWolrd
와 같이 자바 프로그램을 실행시키면서, 자바 버젼정보를 출력할수 있다.
i) -X
비표준 자바옵션 리스트를 화면에 출력해준다.
i-1) -Xms, -Xmx
자바를 구동시, JVM이 사용가능한 최대 메모리 사이즈를 변경합니다.
JVM이 자바프로그램을 구동하기 위해, 초기설정된 메모리사이즈는 64M입니다.
사용방법은 다음과 같습니다
java -Xms <초기힙사이즈> -Xmx <최대힙사이즈>
예를들어, Hello.class 자바 프로그램을 시작시, 256M(메가)의 힙사이즈를 할당하며, 최대 512M의 힙사이즈를 할당받고 싶다면, 다음과같이 합니다.
java -Xms256m -Xmx512m Hello [출처] [강좌] Java 명령어의 옵션 정리 |작성자 소중