Label break 예제
public class BreakLabelDemo {
public static void main(String[] args) {
int count=0;
first :
for(int i = 0 ; i < 4 ; i++){
second :
for(int j = 0 ; j < 5 ; j++){
for(int k = 0 ; k < 2 ; k++){
System.out.printf("(%d, %d, %d)\n", i, j, k);
count++;
if(i == 2 && j == 3 && k ==0) break first;
}
System.out.println("반복 k 끝");
}
System.out.println("반복 j 끝");
}
System.out.println("반복 i 끝");
System.out.println("count = " + count);
}
}
출력:
(0, 0, 1)
반복 k 끝
(0, 1, 0)
(0, 1, 1)
반복 k 끝
(0, 2, 0)
(0, 2, 1)
반복 k 끝
(0, 3, 0)
(0, 3, 1)
반복 k 끝
(0, 4, 0)
(0, 4, 1)
반복 k 끝
반복 j 끝
(1, 0, 0)
(1, 0, 1)
반복 k 끝
(1, 1, 0)
(1, 1, 1)
반복 k 끝
(1, 2, 0)
(1, 2, 1)
반복 k 끝
(1, 3, 0)
(1, 3, 1)
반복 k 끝
(1, 4, 0)
(1, 4, 1)
반복 k 끝
반복 j 끝
(2, 0, 0)
(2, 0, 1)
반복 k 끝
(2, 1, 0)
(2, 1, 1)
반복 k 끝
(2, 2, 0)
(2, 2, 1)
반복 k 끝
(2, 3, 0)
반복 i 끝
count = 27
-------------------------
다중 반복문일때만 효과가 있다.
public class BreakLabelDemo1 {
public static void main(String[] args) {
first :
for(int i = 0 ; i <= 100 ; i++){
System.out.print(i + "\t");
if(i == 30 ) break first; //break만 써줘도 결과는 같다.
}
System.out.println("반복 i의 끝");
}
}
출력:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 반복 i의 끝
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
=====================================================================
배열
//배열을 초기화하는 세가지 방법
public class ArrayDemo {
public static void main(String[] args) {
//1. 배열의 선언
int [] array;
//2. 배열의 생성
array = new int[4];
//3. 배열의 값을 할당
array[0] = 5; array[1] = 6; array[2] = 7; array[3] = 8;
//------------------------------------------------------------------
//1. 배열의 선언
int [] array;
//2. 배열의 생성 및 할당
array = new int[]{5,6,7};
//---------------------------------------------------------------------
int [] array = {5,6,7,8,9};
//세번째 방법의 단점은 선언과 초기화를 다른라인에 하면 에러가 발생한다. 세번째 방법은 무조건 동일라인에 선언과 초기화를 해주어야한다.
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
배열을 이용한 성적관리
import java.util.Scanner;
public class ArrayDemo1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int [] array;
array = new int[4]; //국어, 영어, 수학, 총점
String [] subject = {"국어점수 : ", "영어접수 : ", "수학점수 : "};
for( int i = 0 ; i < subject.length ; i++) {
System.out.print(subject[i]);
array[i] = scan.nextInt();
array[3] += array[i];
}
System.out.printf("국어 = %d, 영어 = %d, 수학 = %d, 총점 = %d", array[0], array[1], array[2], array[3]);
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
input과 output을 함수로 나누고 랜덤값을 배열로 입력받아 총점까지 출력.
public class ArrayDemo2 {
public static void main(String[] args) {
int [] array = input();
int sum = calc(array);
output(sum, array);
}
static int [] input(){ //리턴을 int [] 을 함. //static을 쓰는 이유는 주소없이 접근하므로
int [] array = new int[4];
for (int i = 0 ; i < array.length ; i++)
array[i] = (int)(Math.random() * 10 + 1);
return array;
}
static int calc(int [] array){
int sum = 0;
for(int su : array) sum += su;
return sum;
}
static void output(int sum, int [] array){
for (int su : array) System.out.print(su + "\t");
System.out.println("\nSum = " + sum);
}
}
출력 :
7 7 7 9
Sum = 30
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
public class ArrayDemo3 {
public static void main(String[] args) {
char array[] = {'H','e','l','l','o','\0'}; //널을 포함해야 str과 같다.
String str = "Hello";
array[0] = 'C';
for(char ch : array) System.out.print(ch); //문제없이 Cello 출력
System.out.println();
str[0] = 'C'; //오류발생
System.out.println("str = " + str);
}
}
------------------
public class ArrayDemo3 {
public static void main(String[] args) {
String array[] = {"Hello", "World", "Java", "Oracle", "C-language"}; //String은 reference type. 그래서 각 방에는 번지가 들어간다
for(int i = 0 ; i < array.length ; i++){
System.out.printf("array[%d] = %s\n", i, array[i]);
}
}
}
출력:
array[0] = Hello
array[1] = World
array[2] = Java
array[3] = Oracle
array[4] = C-language
C는 포인터를 이용해 코드짜기는 복잡하지만 메모리를 핸들링 할 수 있지만, 자바는 메모리를 핸들링 할 수 없다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
2차원 배열
/*
2차원배열
1. rectangular array
2. ragged (jagged) array
*/
public class ArrayDemo5 {
public static void main(String[] args) {
/* //rectangular array - c에서 쓰는 방법
int [][] array; //1. 선언
array = new int[2][3]; //2. 생성
array[0][0] = 5....; //3. 할당
///////////////////////////////////////////////
int[][] array; //1. 선언
array = new int[][] {{1,2,3},{4,5,6}} ; // 생성 및 할당
///////////////////////////////////////////////
int [][] array = {{1,2,3},{4,5,6},{7,8,9}}; //초기화
*/
//ragged(jagged) array
int [][] array; //1. 선언
array = new int[2][]; //2. 생성
array[0] = new int[4]; //2 - 1. 각 층 생성
array[1] = new int[2]; //행마다 방의 개수를 달리할 수 있다.
array[0][0] = 5; array[0][1] = 6; //3. 할당
//////////////////////////////////////////////////////////////
int [][] array;
array =new int[][]{{1},{3,4,5},{6,7,8,9}}; //2. 생성 및 할당
///////////////////////////////////////////////////////////////
int [][] array ={{1},{2,3},{5,6,7,8}}; //초기화
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
2차원 배열의 사용
public class ArrayDemo6 {
public static void main(String[] args) {
/* int [][] array; //선언
array = new int[2][3];
array[0] = new int[]{1,2,3};
array[1] = new int[]{4,5,6};
*/
int [][] array = {{1,2,3},{4,5,6}}; //위의 4줄을 한번에 써줌.
for(int i = 0 ; i < array.length; i++){
for(int j = 0 ; j < array[i].length; j++){
System.out.printf("array[%d][%d] = %d\t\t\t", i, j, array[i][j]);
}
System.out.println();
}
// array = new int [2][3]; //2차원 배열의 length는 행의 개수
// int [] array = new int[] {1,2,3,4,5}; - 1차원 배열의 length는 방의 개수
// int [][][] array = new int [5][8][9]; - n차원 배열의 length는 맨앞의 숫자. 따라서 이것은 5
// array[0]의 length는 8, array[0][0]의 length는 9. 이런식...
// System.out.println(array.length);
}
}
출력:
array[0][0] = 1 array[0][1] = 2 array[0][2] = 3
array[1][0] = 4 array[1][1] = 5 array[1][2] = 6
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
배열의 각행의 길이가 다를 때
public class ArrayDemo7 {
public static void main(String[] args) {
/*
int [][] array;
array = new int[3][];
array[0] = new int[]{1,2,3};
array[1] = new int[]{4,5,6,7,8,9};
array[2] = new int[]{10}
*/
int [][] array = { //위의 초기화를 간단하게
{1,2,3},
{4,5,6,7,8,9},
{10}
};
for(int i = 0; i < array.length; i++){
for(int j = 0; j< array[i].length; j++){
System.out.printf("array[%d][%d] = %d\t\t\t", i, j, array[i][j]);
}
System.out.println();
}
}
}
출력:
array[0][0] = 1 array[0][1] = 2 array[0][2] = 3
array[1][0] = 4 array[1][1] = 5 array[1][2] = 6 array[1][3] = 7 array[1][4] = 8 array[1][5] = 9
array[2][0] = 10
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
2차원배열을 이용한 함수로 나누어 랜덤값 출력
public class ArrayDemo8 {
public static void main(String[] args) {
int [][] array = input();
output(array);
}
static int [][] input(){
int [][] array = new int[2][3];
for(int i = 0 ; i < array.length ; i++)
for(int j = 0; j < array[i].length ; j++)
array[i][j] = (int)(Math.random() * 10 + 1);
return array;
}
static void output(int [][] array){
for(int i = 0 ; i < array.length ; i++)
for(int j = 0; j < array[i].length ; j++)
System.out.printf("array[%d][%d] = %d\t\t\t", i, j, array[i][j]);
System.out.println();
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
몇개인지 입력 받고, 숫자들을 입력받은 후 버블정렬로 오름차순.
import java.util.Scanner;
public class ArrayDemo9 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num;
System.out.print("몇 개 입력 ? : ");
num = scan.nextInt();
int [] array = new int[num];
for(int i = 0 ; i < array.length ; i++){
array[i] = scan.nextInt();
}
bubbleSort(array);
output(array);
}
static void bubbleSort(int [] array){
for(int i = 0 ; i < array.length-1 ; i++){
for(int j = 0 ; j < array.length-1-i ; j++){
if(array[j] > array[j+1]) swap(array, j, j+1);
}
}
}
static void swap(int [] array, int first, int second){
int temp = array[first];
array[first] = array[second];
array[second] = temp;
}
static void output(int [] array){
for(int su : array) System.out.print(su + "\t");
System.out.println();
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
자바에서 1차원 배열의 스왑 -2차원 배열을 사용해야한다.
public class ArrayDemo11 { //배열 두개를 넘겨서 swap하면 c에서 call by value한 것과 같게된다. 그래서 바뀌지 않는 값을 얻게된다.
public static void main(String[] args) {
int [][] array = new int[2][5]; //그래서 스왑을 위해 새로운 2차원배열을 선언한다.
array[0] = new int[]{1,2,3,4,5};
array[1] = new int[]{10,20,30,40,50};
System.out.println("Before Swapping");
print(array);
swap(array);
System.out.println("After Swapping");
print(array);
}
static void print(int [][] array){
for (int i = 0 ; i < array.length ; i++){
for (int j = 0 ; j < array[i].length ; j++){
System.out.printf("%d, ", array[i][j]);
}
System.out.print(" --> " );
}
System.out.println();
}
static void swap(int [][] array){
int [] temp = array[0];
array[0] = array[1];
array[1] = temp;
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
성적관리 프로그램(성적순으로 정렬)
import java.util.Scanner;
public class ArrayDemo10 {
public static void main(String[] args) {
String [] nameArray = new String[3];
int [][] array = new int[3][4];
input(nameArray, array);
calc(array);
sort(nameArray, array);
output(nameArray, array);
}
static void input(String [] nameArray, int [][] array){
Scanner scan = new Scanner(System.in);
for(int i = 0; i < nameArray.length; i++){
System.out.println((i + 1) + " 번째 학생");
System.out.print("Name : " );
nameArray[i] = scan.next();
System.out.print("국어 : " );
array[i][0] = scan.nextInt();
System.out.print("영어 : " );
array[i][1] = scan.nextInt();
System.out.print("수학 : " );
array[i][2] = scan.nextInt();
}
}
static void calc(int [][] array){
for(int i = 0 ; i < array.length; i ++){
for(int j = 0 ; j < array[i].length -1 ; j++){ //총점을 빼야하므로, -1해줘야함.
array[i][3] += array[i][j];
}
}
}
static void sort(String [] nameArray, int [][] array){
for(int i = 0 ; i < nameArray.length-1 ; i++){
for(int j = 0 ; j < nameArray.length-1-i ; j++){
if(array[j][3] < array[j+1][3]){
String temp = nameArray[j];
nameArray[j] = nameArray[j+1];
nameArray[j+1] = temp;
int [] tempArray = array[j];
array[j] = array[j+1];
array[j+1] = tempArray;
}
}
}
}
static void output(String [] nameArray, int [][] array){
for(int i = 0 ; i < nameArray.length ; i++){
System.out.printf("%s\t\t", nameArray[i]);
for(int j = 0 ; j < array[i].length ; j++){
System.out.printf("%d\t", array[i][j]);
}
System.out.printf("%10.2f\n", array[i][3] / 3.);
}
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
2차원 배열 출력 - 각 층의 주소를 출력함수로 보낸다.
public class ArrayDemo12 {
public static void main(String[] args) {
int [][] array = {{1,2,3},{4,5}};
for(int i = 0 ; i < array.length ; i++){
print(array[i]);
}
}
static void print(int [] array){
for(int su : array)
System.out.print(su + "\t");
System.out.println();
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
자바 조심해야할 점
public class ArrayDemo13 {
public static void main(String[] args) {
int [] array = {2,3,4,5,6};
print(array);
}
static void print(int [] array){
for(int i = 0 ; i < 5 ; i++){ //자바는 절대로 숫자를 쓰지않는다. 5가아닌 array.length로
System.out.print(array[i] + "\t");
}
System.out.println();
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
배열의 주소복사
public class ArrayDemo14 {
public static void main(String[] args) {
int [] first = {1,2,3,4,5};
int [] second = {10,9,8,7,6,5,4,3,2,1};
int [] temp = first;
first = second;
second = temp;
print(first);
print(second);
}
static void print(int [] array){ //배열의 주소 복사는 개수와 상관 없다.
for(int su : array) System. out.print(su + "\t");
System.out.println();
}
}
출력:
10 9 8 7 6 5 4 3 2 1
1 2 3 4 5
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
//배열의 값 복사
public class ArrayDemo15 {
public static void main(String[] args) {
int [] source = {1,2,3,4,5,6,7,8,9,10};
int [] dest = {10,9,8,7,6,5,4,3,2,1};
System.arraycopy(source, 0, dest, 0, source.length);
System.out.printf("source[0] = %d, dest[0] = %d\n", source[0], dest[0]);
source[0] = 10000;
System.out.printf("source[0] = %d, dest[0] = %d\n", source[0], dest[0]);
}
}
출력:
source[0] = 1, dest[0] = 1
source[0] = 10000, dest[0] = 1
----------------------
//배열의 값 복사
public class ArrayDemo15 {
public static void main(String[] args) {
int [] source = {1,2,3,4,5,6,7,8,9,10};
int [] dest = {10,9,8,7,6};
System.arraycopy(source, 0, dest, 0, source.length); //오류 발생. 값 복사는 숫자가 맞아야한다.
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
자바의 처음 시작인 String[] args
public class ArrayDemo16 {
public static void main(String[] args) {
for(int i = 0 ; i <args.length ; i ++){
System.out.printf("array[%d] = %s\n", i, args[i]);
}
}
}
이렇게 코딩하고, 에디트 플러스의 경우 도스창에서 java ArrayDemo16 딸기 바나나 포도 사과 복숭아 배 레몬 을 입력하면
array[0] = 딸기 ~~~ array[6] = 레몬 까지 출력된다. 클래스명 다음부터 0번지로 인식한다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
간단한 계산기
//java ArrayDemo16에서 4 + 7 을 입력하면 문자로 들어가기때문에 "4" "+" "7"이다.
public class ArrayDemo16 {
public static void main(String[] args) {
int first = Integer.parseInt(args[0]); //"4" --> 4
int second = Integer.parseInt(args[2]); //"7" --> 7
String op = args[1];
int result =0;
switch(op){
case "+" : result = first + second; break;
case "-" : result = first - second; break;
case "x" : result = first * second; break;
case "/" : result = first / second; break;
case "%" : result = first % second; break;
}
System.out.printf("%d %s %d = %d\n", first, op, second, result);
}
}
출처 : www.javaexpert.co.kr
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
=====================================================================================
이클립스 설치
지난번에 다운 받은 리눅스용 이클립스. tar xvfz eclipse-java*.tar.gz
홈폴더에서 예전에 사용하던 C용 이클립스 이름을 mv Eclipse EclipseCDT 바꿔줌.
지금 설치한 이클립스를 mv eclipse ../EclipseJDT 홈폴더로 이동.(홈폴더는 /home/mino임)
그리고 아래 파일을 /usr/share/applications에 넣어주어야한다.
위 파일은 자기의 경로에 맞게 적어주어야 하므로 경로 수정이 필요함.
그리고 터미널에서 옮기기 위해서는 권한이 필요하므로
sudo mv eclipse.desktop /usr/share/applications/eclipse.desktop 를 써주면 옮겨간다(eclipse.desktop이 있는 폴더에서 작성 해준다)(-경로수정방식은 예전 C이클립스 설치 편에서 설명했었다)
그리고 그 파일을 런쳐로 드래그앤 드랍하면 된다.
이클립스 첫시작
import java.util.Arrays;
public class ArrayDemo {
public static void main(String[] args) {
int [] array = {4,3,7,2,1,9,2};
System.out.println("Before Sorting");
print(array);
System.out.println("After Sorting");
Arrays.sort(array);
print(array);
}
static void print(int [] array){
for(int su : array) System.out.print(su+"\t");
System.out.println();
}
}
리눅스에서 http://www.sublimetext.com/ 이동. 버전 3의 다운로드 페이지는 http://www.sublimetext.com/3 이다.
Ubuntu 32bit 선택해서 다운. 그리고 터미널에서 다운로드 페이지로 이동 후에 sudo dpkg -i sublime*.deb 엔터.
search에서 sublime 치면 나온다. 편하게 쓰기 위해 런쳐로 이동시켜준다.
다시 인터넷 https://sublime.wbond.net/installation#st3 로 이동.
SUBLIME TEXT3 의 써 있는 내용을 전부 그대로 복사. 그리고 복사한 내용을 sublime에 다시가서 view-show console 창에서 제일 밑에 줄에 글 쓰는 곳에 붙여넣기.
그러면 설치를 해주는데 설치확인은 preference 탭에서 package control이 있다면 설치 완료.
다음은 preference-setting user 로 들어간다. 거기서 {} 안에
{
"font_face" : "Verdana",
"font_size" : 12,
"line_padding_top" : 2,
"line_padding_bottom" : 2,
"ignored_packages" :
[
"Vintage"
]
}
save하면 바로 적용이 된다.
다음으로 한글패키지 설치를 해보자. ctrl + shift + p 키를 누른다.
package control 검색해서 package control :install package 선택. 그리고 convertToUTF8 을 검색해서 눌러줌.
거기서 File-Set file Encodiing to - Korean 선택.
다시 ctrl + shift + p 눌러서 package control :install package 선택. 그리고 javatar 써줌. 그럼 설치 완료.
view-side bar-show open files 선택.
한번 닫았다가 다시 열어준다.
Tools-Build System-New Build System 선택.
다지우고 아래와 같이 써줌.
{
"cmd": ["javac", "$file_name"],
"working_dir" : "/home/mino/JavaRoom"
}
저장은 file-save as 해서 mino - .config - sublime-text-3 - packages - User 에서 JAVAC.sublime-build 로 저장.
이번엔 run을 설정하기 위해 다시 Tools-Build System-New Build System 선택. 아래와 같이 적어줌.
{
"cmd": ["java", "$file_base_name"],
"working_dir" : "/home/mino/JavaRoom"
}
저장은 file-save as 해서 mino - .config - sublime-text-3 - packages - User 에서 JAVARUN.sublime-build 로 저장.
HelloWorld의 예제를 작성해서 시험해보자. Tools-Build System에서 JAVAC 선택한다. 그리고 Tools-Build 선택. 컴파일완료.
그리고 Tools-Build System에서 JAVA 선택해서 다시 BUILD 하면 실행된다.
/usr/lib/jvm/jdk1.7.0_51/bin/runJava.sh 로 이동시켜준다.
그리고 cd $JAVA_HOME 엔터. 그리고 cd bin 이동. ls -l로 보면 권한이 없는 것을 볼 수있다.
거기서 chmod 755 runJava.sh 로 권한 변경.
HOME 폴더에 show hidden file로 파일보이게 해서 .config 폴더 선택
그리고 sublime-text-3 폴더 - Pacages 폴더 - User폴더 에서 아까만들었던 JAVARUN.sublime-build파일 삭제.
그리고 JAVAC.sublime-build 를 아래와 같이 변경.
{
"cmd": ["/bin/bash","runJava.sh","$file_base_name"],
"working_dir" : "/home/mino/JavaRoom"
}
이름도 변경된 능력에 맞게 JAVA.sublime-build로 변경.
실패함 --- XXXX
==========================================================
'Java & Oracle' 카테고리의 다른 글
자바 Encapsulation, split을 이용한 파싱, private (0) | 2014.03.14 |
---|---|
자바 method,helloworld출력방법8가지,파일입력,...사용, 재귀호출,UML tool 설치 (0) | 2014.03.13 |
자바 기본, 입력, 변수접근, 연산자, 제어문 (0) | 2014.03.11 |
자바 시작(윈도우, 우분투, 에디트플러스 환경설정)(이클립스는 다운만) (0) | 2014.03.10 |
c 포인터 리뷰, 라이브러리(타임 , 스트링) (0) | 2014.03.07 |