JAVA1

내 힘으로 컴파일

소개

이클립스 없이 직접 컴파일하고, 실행하는 방법을 알아봅니다. 이클립스에서 독립합시다! 
 
 
 

강의1

 

 

 

강의2

 

 

 

강의3

 

 

 

강의4

 

 

 

강의5

 

 

 

댓글

댓글 본문
작성자
비밀번호
  1. juni
    잼있네요....^^
    감사합니다...
  2. 칩과데일
    구경모드입니다.
  3. LIMON
    C:\Users\LIMON\Desktop\practice\src에 위치해있는 variable.java를
    javac variable.java 입력해서 class파일까지는 만들어지는데
    java variable 를 입력하면

    Error: Could not find or load main class variable
    Caused by: java.lang.NoClassDefFoundError: practice/variable (wrong name: variable)

    라는 에러가 계속 뜹니다.

    참고로 환경변수 잘못 설정했나 싶어서 설치도 다시 가봤고 차근차근 자바도 다시 깔아봤습니다.
    시스템변수 사용자변수 다 설정했고, JAVA_HOME도 했고, 어떤 글에 시스템변수->PATH에 %JAVA_HOME%\bin;도 추가해봤는데 안 됩니다...왜이럴까요...
  4. 취생아
    완료 2020.1.20
  5. 라또마니
    화려하지 않지만......, 조으다.... 감사합니다.
  6. 소금설탕
    완료. 고맙습니다.
  7. 윌리엄
    org.opentutorials.iot 패키지를 직접 가져오면서 궁금했던 점이 swing과 같은 라이브러리는 어떻게 가져오는건지였어요. 방금 10분동안 혼자서 한참 파일 열어보면서 찾아다니다가 떠오른 생각이 java를 실행시키면 이미 jdk 폴더 안에 있는 라이브러리들은 자동으로 가져올 수 있는 거 아닐까 해서, 일반성을 잃지 않고 패러미터를 사용한 인자들만 입력해서 동작시켜봤는데 정상적으로 돌아가네요! 어떻게 명령하지도 않았는데 기본적으로 내장된 라이브러리가 동작할까요?

    웃긴 점이, eclipse에서 pakage explorer-JRE Library에 있는 파일들을 보면
    C:\Program Files\Java\jdk-13.0.1\jmods인데 우리가 환경변수로 컴퓨터가 찾을 수 있도록 등록한 path는 jdk-13.0.1까지만 디렉토리가 같은 bin 파일이에요. 즉, 컴퓨터에서 라이브러리를 직접 찾아서 연 게 아니란 말이죠. 우리가 같은 디렉토리에 있던 org파일을 연 것과 동작하는 방식이 달라요. java를 실행시키니 java에서 자동으로 라이브러리를 가지고 왔다는 말로 밖엔 설명이 안 되네요. 하긴, jdk-13.0.1 폴더에 들어 있던 파일들은 이미 다 세팅되어 있던거니 java에서도 미리 입력된 위치에 따라 라이브러리 파일을 들고 왔겠죠.

    또한, jmods 폴더는 org폴더와 다르게 다른 디렉토리 안에 넣어놔도 프로그램이 작동하네요. 저는 이게 왜 이렇게 작동하는지 잘 모르겠네요.

    ps. 위에 실험하면서 실수로 lib파일을 다른 디렉토리 안에 넣어놨어요. 그러니까 프롬프트에서 jdk-13.0.1안에 있는 lib 안에 있는 jvm.cfg를 열 수 없습니다. 라고 떠요. jvm. 우리가 저번 시간에 배웠던 Java Virtual Machine!! java에서 가상 머신을 실행시켜 프로그램을 동작시킨다고 했던가요? java를 직접 실행시켜도 java에서 가상 머신을 동작시키는 건 변함없네요. 그런데 이것으로 궁금해지는게 lib, 즉 library인데 eclipse에서 JRE Library를 열어보면 jmods에 있는 파일들이 보이는 이유는 뭘까요?
  8. 윌리엄
    근데 신기한 사실을 발견했어요. 1부터 10,000,000까지 차례대로 출력하는 프로그램을 만들었었는데 통합 개발 환경에서 실행했을 때와 명령 프롬프트에서 실행했을 때 속도 차이가 나요. 통합 개발 환경에서보다 직접 컴퓨터에서 자바를 실행해 프로그램을 동작시켰을 때 실행 속도가 현저히 떨어집니다. 둘 다 저소음 모드 상태에서 통합 실행 환경의 경우에 1부터 1천만까지 출력하는데 1분 16초 19가 걸린 반면, 컴퓨터에서 자바를 실행해 프로그램을 동작시켰을 땐 37분 28초 72가 나옵니다. 왜 이런 결과가 나오는지 굉장히 궁금하네요.
  9. 윌리엄
    저번 수업 때, 이클립스에서 패러미터를 사용해 값을 입력하는 이유가 궁금했는데 오늘에서야 알게되었어요. 이클립스 없이 자바를 실행할 때, 굳이 입력 라이브러리를 포함시키지 않고도 값을 입력할 수 있기 때문이군요. 이렇게 하면 디렉토리에 관한 신경도 덜 쓸 수 있겠지요. 사용자야 편하겠지만 우리는 매번 실행할 때마다 입력해주는 게 불편하다는 말도 이제서야 공감이 가요. 우리가 원하는 건 프로그램이 올바르게 동작하는지 실행해보려는 거니까요. 굳이 안내 테스트 입력 받지 않고도, 프로그램이 정상적으로 작동할 때에, 미리 자바가 계산할 수 있는 값들을 넣어 테스트 해보는게 더 편하네요. 다만 디버깅, 컴파일을 알아서 해주는 기능, 소스코드 확인 등등을 생각해보면 통합개발환경이 편하고요. 이클립스를 사용하지 않고 직접 앱을 실행할 때의 좋은 점은 아무래도 프로그램 하나를 덜 실행하는 점과 특정 입력 값으로 테스트할 때 편한 점이네요.
  10. 쑤우
    수강완료. 감사합니다~
  11. 김댕댕
    java.lang.UnsupportedClassVersionError 클래스 파일 실행시 에러발생하였습니다. 해당 링크대로
    클래스 파일을 다시 컴파일 하니 해결되었네요.^^ 알음알음 알아가는 재미가 쏠쏠 합니다.~~~~
    https://www.mkyong.com......or/


    라이브러리가 일종의 오픈소스라고 생각하면 되는 건가요? 라이브러리 검색을 어떻게 하는게 좋을지.... 또하나의 숙제인거 같습니다.
  12. 무누우
    5번째 동영상에서, args로 따라 고쳤는데, 저는 왜 계속해서 dialog가 잘 생성될까요 -_-;;;

    아아아!!! 제가 컴파일을 안하고 .java 파일만 수정하고 실행했었네용 ㅋㅋㅋㅋㅋ

    .class 지우고, 다시 컴파일 하고 실행하니, 됩니당~~~
  13. 햄쮸맨
    근데 참 희안한게 javac명령어는 두번 다 성공했는데 java명령어가 한번은 Program.class에서 성공했다가 두번 째 GoInHome에선 안되네요..허허..제 컴퓨터는 좀 까막눈인가봐요.잘 못찾네요..
  14. 햄쮸맨
    패키지 개념도 그렇고 라이브러리나 클래스,객체.. 객체지향 프로그래밍의 모든 것은 재사용,재생산을 통한 생산성 향상이라는 철학이 담겨있네요!와 맛깔난다!
  15. 햄쮸맨
    전 클래스 파일은 한방에 생성됐는데 클래스 파일 실행이 안되다가 java -cp "." Program 하니까 되네요.근데 program.class 클래스 안에 딱히 객체가 없어도 클래스 자체만으로도 메소드는 돌아가네용. 클래스 자체가 하나의 객체가 된건가용? 어차피 클래스는 객체의 집합이니 원소가 없는 공집합이나 뭐 그런걸로다가 생각하면 될까요? 이건 재미있네요!
  16. 햄쮸맨
    으헝 두번째 영상 javac쳐도 명령어가 안나오네요. ㅎㅎ;
    제가 깐건 자바(JRE)랑 이클립스 만이고 JDK가 아니라서 javac가 안되나봐요!와! 대박! JDK깔러가야쥥!
    허허 이거 하나 해결하는 것도 재미있네요. 직접 검색해서 JDK 깔고 시스템 변수 다시 설정해주고 재미있당ㅎㅎ.와 근데 모르고 시스템 변수 고치다가 기존 목록 홀라당 날아가서 그거 또 해결하는데 재미있네욬ㅋㅋㅋㅋㅋㅋㅋ앜ㅋㅋㅋㅋㅋㅋ 덕분에 여러가지를 배워갑니다.
  17. 오늘은 구경만했네요 언젠가 필요할때 다시 돌아올게요~
  18. 기봉기봉
    어렵네요. 실습하려다가 계속해서 구경만했습니다. ㅜㅜ
  19. egoing
    앗 수정했습니다!
    대화보기
    • leehan
      유튜브 채널 JAVA1
      19/10/18 게시된 영상 목록 중
      12.1, 2, 3, 4, 5 (직접 컴파일하고 실행하기)
      12.3, 4, 5 중복 업로드 됐습니다
    • polyeffect
      (윈도우한정) 자바 실행시 버전 에러 나시는 분들은 환경변수 설정에서 '시스템 변수' 에 제일 상단에 jdk-13/bin 폴더를 추가해 주시면 됩니다. 컴파일 버전과 런타임 버전이 달라서 생기는 문제입니다.
    • 매직
      잘학습했습니다. 감사합니다. ^^
    • 행복부자
      검색 후 윈도우 자바 패스 설정 마쳤네요 ㅡㅡ;
      대화보기
      • 행복부자
        이번 과정은 그냥 볼 수 밖에 없어서 아쉬웠네요 ...
        윈도우 설정, 맥 설정에 대한 구체적인 부분이 아쉬워요 ㅡㅡ;
        찾아서 설정 다 마친 다음에 다시 실습 따라서 해 보도록 하겠습니다.
      • Kaisar LEE
        다만 저도 한가지 못찾은 점은..
        저렇게 import 시킬 파일들을 컴파일 할 때 한꺼번에 bin 폴더로 하는 방법.
        이건 구글링을 계속 해도 못찾겠습니다.
        찾으면서 느낀건 이클립스 라는 프로그램이 괜찮은 녀석에서 대단한 분으로 위상이 달라지기도.
        아시는 분 계시면 공유 좀 해주세요 ㅎㅎ
      • Kaisar LEE
        이고잉님. 오늘도 큰 감사의 인사를 드립니다.
        아울러 강의 3안에 MAC에서 컴파일 할 시에 src 와 bin 폴더로 나눠져서 하시는 분들의 경우
        javac program.java 로 하면 에러가 나고
        이고잉님께서 알려주신
        javac -cp "." Program.java 로 하면 컴파일은 정상적으로 되지만 src 폴더 즉, java 파일들만 있는곳에서 class 파일이 생성되기 때문에 이 부분을 정상적으로 bin 폴더에 컴파일 하고 싶을 때는
        javac -d [bin폴더의 경로] Program.java 로 하면 됩니다.
        bin 폴더에 경로를 복사해서 붙여넣는 방법은 강의 동영상에 나와있으니 보시고 따라하시면 될 것 같네요.
      • Sangyeon Seo
        제가 첫번째로 봤나봐요!!
        컴파일러 방법 잘 봤습니다.
        OS별로 컴파일 설정하고 실행하는 것을 보니 궁금했던게 해결되네요^^
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기