자바에 대해 궁금한게 있는데요 +_+

dong1036의 이미지

자바를 시작한지 얼마 안된 초보입니다.

자바를 컴파일 하고 실행을 할때에는 꼭..

java 파일이름 이런식으로 해야 실행이 되는데..

제 생각에는 그 이유가 대충 인터프리터 언어이기 때문에~

그런것 같은데 ;;;

C처럼.. 바로 실행파일을 만들수 없을까요?

아 그리고 또 궁금한 점이..

자바에서는 C에서와 같이 scanf나 gets처럼 키보드로 입력하는

것이 뭔가요?

지금 "소설XX XX"라는 책으로 공부하고 있는데..

5장까지 했는데.. 그런것이 안나와서.. 궁금해서요 ㅋㅋ

아 또 질문이 ㅠㅠ

데비안에서 시간 바꾸는 방법이 뭐에요? -_-;;

GMT로 설정한것 같은데... 시간이 현재시간과 많이 차이 나서요

그럼.. 답변 부탁드려요 ^-^

indie의 이미지

다른건 잘 모르겠고 마지막 문제는
/usr/share/zoneinfo/Asia/Seoul을 /etc/localtime으로 링크거시고
date명령으로 손보시면 될거 같네요...

집에나 갈까?

익명 사용자의 이미지

1 네이티브 컴파일 : 게시판에서 "자바 and 네이티브" 로 검색해보세요

2. 키보드입력 : System.in 과 InputStreamReader 에 대해 알아보세요

익명 사용자의 이미지

dong1036 wrote:

...
java 파일이름 이런식으로 해야 실행이 되는데..

제 珝♧〈?그 이유가 대충 인터프리터 언어이기 때문에~
...


버츄얼머신이 무엇인가?왜?
바이트코드(플랫폼 인디펜던트)는 무엇인가? 왜?
를 의미심장하게 보세요.
dong1036 wrote:

...
C처럼.. 바로 실행파일을 만들수 없을까요?
...

gcj를 이용하면 해당 플랫폼용 native code를 만들 수 있습니다.
물론, 바이트코드와는 달리, 이렇게 생성된 코드는 해당 플랫폼에서만 돌지요.

dong1036 wrote:

자바에서는 C에서와 같이 scanf나 gets처럼 키보드로 입력하는

것이 뭔가요?


아래 코드를 보세요.
// Test.java 로 저장
import java.io.*; // IO를 어떻게 하지? 관련 클래스들!

public class Test {
	public static void main(String[]args)  throws IOException {
		StringBuffer buf = new StringBuffer();
		char ch;
       
		System.out.println("Hello world!\n");
		System.out.println("Enter a line ==> ");
        while ( true ) {
			ch = (char)System.in.read();
			if ( ch == '\n' )
				break;
			buf.append(ch);
 		} 
		System.out.println("you enter : "+ buf.toString());
	}
}

gcj를 이용해서 컴파일 하시고요.

컴파일 방법은 리눅스에서 기준으로하면,

$ gcj  --main=Test    Test.java -o Test
$ ./Test

윈도우 플랫폼에서는 mingw를 설치하거나 하면 되겠지요.
참고 url : http://wiki.kldp.org/wiki.php/GCJ

pool007의 이미지

자바의 입력받기는
JDK5에서는
java.util.Scanner를 사용하시면 됩니다.
(http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html)

혹은

import java.io.*;

public class Test {

  public static void main(String[] args) throws IOException {

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String line = br.readLine();

    System.out.println(line);
  }
}

가 그전 버젼까지에서는 일반적으로 쓰여왔습니다.

scanf 처럼 포멧팅된 입력을 처리하려면
java.util.StringTokenizer란 클래스를 사용하여 토큰을
분리해야합니다. 물론 이렇게 하려면 복잡하죠..
그래서 JDK5 에서는 Scanner가 등장하게 되었습니다.

그리고 실행파일 변환기는 JBuilder 등에도 있습니다만,
JBuilder의 실행파일은 JRE를 필요로 하는 단점이 있습니다.
gcj 도 처음알고 찾아가 보았는데 물론 libgcj 라는 라이브러리를
가져다 쓰는군요.. 따라서 머신에 libgcj 가 없으면 안되겠죠?

자바는 인터프리트되는 언어와 컴파일되는 언어의 중간형태인
하이브리드 형태로 분류됩니다. 이 상태에서는 컴파일하는 것보다
더 빠르게 실행될 수 있다고 주장하고 있습니다. 따라서 사실
자바를 컴파일해서 머신 코드를 만든다는건 자바의 장점을 포기한다는
말이 되는셈이죠... 그냥 JIT나 실행시간 최적화기를 믿고,
"Java 클래스명" 으로 실행하는게 좋을 것입니다. 그리고 그게 귀찮으면
간단한 쉘 스크립트를 짜서 실행하게 하시던가요.

--
Passion is like genius; a miracle.

r0x2tk1t의 이미지

소설XX XX 책을 보았을 때,
콘솔에서 입력받는 System.in 에 대한 내용은
상당히 뒤에 나오는걸로 알고 있습니다.
10장 넘어서였나?? IO를 다룰때 나옵니다.
차근차근 보다가 보면 책 속에 해답이 있겠네요. 8)

日新 日日新 又日新
Google Talk::chanju_dot_jeon(at)gmail_dot_com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.