banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Làm sao để Compile từ .java sang .class  XML
  [Programming]   Làm sao để Compile từ .java sang .class 20/12/2006 12:53:22 (+0700) | #1 | 31542
[Avatar]
Echip HN
Member

[Minus]    0    [Plus]
Joined: 20/12/2006 00:43:12
Messages: 2
Offline
[Profile] [PM] [WWW] [MSN]
Do yêu cầu công việc nên mình cần phải Compile một số file .java sang .class nhưng mà mình chưa biết làm thế nào ?
Có được một số bạn bảo dùng cái SDK gì đó của SUN nhưng mà sau khi cài vào mình thấy nó rất nặng và không biết dùng thế nào ?! :?smilie
Bạn nào có thể hướng dẫn mình một cách cụ thể 1 chút được không ?
( Mình hay nghịch phần mềm nhưng lập trình thì mù tịt - biết mỗi tí tẹo pascal từ ngày cấp 3 smilie-)) )
Thx
[Up] [Print Copy]
  [Question]   Làm sao để Compile từ .java sang .class 20/12/2006 18:02:31 (+0700) | #2 | 31567
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

Echip HN wrote:
Do yêu cầu công việc nên mình cần phải Compile một số file .java sang .class nhưng mà mình chưa biết làm thế nào ?
Có được một số bạn bảo dùng cái SDK gì đó của SUN nhưng mà sau khi cài vào mình thấy nó rất nặng và không biết dùng thế nào ?! :?smilie
Bạn nào có thể hướng dẫn mình một cách cụ thể 1 chút được không ?
( Mình hay nghịch phần mềm nhưng lập trình thì mù tịt - biết mỗi tí tẹo pascal từ ngày cấp 3 smilie-)) )
Thx 


Đọc cái này:
http://java.sun.com/docs/books/tutorial/getStarted/cupojava/win32.html#win32-2b

Nếu số lượng .java nhiều và phức tạp (đòi hỏi nhiều thư viện hỗ trợ) thì bồ nên nhờ ai đó rành java giúp. Còn không, bồ cần làm quen với cách tạo và compile java, cách đóng gói, cách khởi động và sử dụng.

Hướng dẫn cụ thể nên khởi đầu bằng:
http://java.sun.com/docs/books/tutorial/getStarted/index.html

Thân mến.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Re: Làm sao để Compile từ .java sang .class 21/12/2006 11:05:22 (+0700) | #3 | 31726
[Avatar]
Echip HN
Member

[Minus]    0    [Plus]
Joined: 20/12/2006 00:43:12
Messages: 2
Offline
[Profile] [PM] [WWW] [MSN]
Thx bác - em theo hướng dẫn thì đã compile được rồi ( tuy nhiên phải CD đến thư mục cài là C:\Program Files\Java\jdk1.6.0\bin và cho file .java vào đó rồi mới gõ lệnh javac tenfile.java )
Nhưng mà lại nảy sinh 1 vấn đề là file .java đó em Decompile từ 1 file .class - rồi sau đó edit lại các phần chú thích trong đó - rồi Compile lại để thành .class như ban đầu thì lại có hàng chục, hàng trăm lỗi xuất hiện trong thông báo khi Compile. Quá trình mô tả bằng hình sau:
.Class --->DeCompile và Edit các chú thích--> .java ----> Compile bằng javac ---> lỗi !?
Mà rõ ràng rằng em chỉ edit các phần chú thích màu xanh mà thôi - tức là các chú thích sau dấu //
Đây là VD 1 file .class em đã DeCompile
Code:
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.rms.RecordStore;

public final class a
    implements Runnable
{

    public a(Graphics g)
    {
        b_boolean_fld = false;
        a_int_fld = -1;
        b_int_fld = -1000;
        a_javax_microedition_lcdui_Image_array1d_fld = new Image[7];
        a_short_array2d_fld = new short[7][2];
        a_b_fld = new b();
        c = 0;
        d = 0;
        a_boolean_fld = false;
        b();
        c = a_javax_microedition_lcdui_Image_array1d_fld[6].getHeight();
        a_java_lang_Thread_fld = new Thread(this);
        a_java_lang_Thread_fld.start();
        a_javax_microedition_lcdui_Graphics_fld = g;
        b_int_fld = -1 * c;
    }

    public final void a()
    {
        a_javax_microedition_lcdui_Graphics_fld.drawImage(a_javax_microedition_lcdui_Image_array1d_fld[6], 0, b_int_fld, 20);
        if(a_boolean_fld)
            a_javax_microedition_lcdui_Graphics_fld.drawImage(a_javax_microedition_lcdui_Image_array1d_fld[d], a_short_array2d_fld[d][0], a_short_array2d_fld[d][1], 20);
    }

    public final int a()
    {
        if(d >= 5)
            d = 0;
        else
            d++;
        return d;
    }

    public final int b()
    {
        if(d <= 0)
            d = 5;
        else
            d--;
        return d;
    }

    public final void b()
    {
        String as[] = RecordStore.listRecordStores();
        InputStream inputstream = null;
        boolean flag = false;
        boolean flag1 = false;
        if(as != null)
        {
            int i = 0;
            do
            {
                if(i >= as.length)
                    break;
                if(as[i].indexOf("Skin_") != -1)
                {
                    flag1 = true;
                    break;
                }
                i++;
            } while(true);
        }
        if(!flag1)
            inputstream = getClass().getResourceAsStream("/data/SKIN.DAT");
        try
        {
            for(byte byte0 = 0; byte0 < 7; byte0++)
            {
                a_short_array2d_fld[byte0][0] = (short)inputstream.read();
                a_short_array2d_fld[byte0][1] = (short)inputstream.read();
                short word0;
                byte abyte0[] = new byte[word0 = (short)a_b_fld.a(inputstream)];
                for(int j = 0; j < word0; j++)
                    abyte0[j] = (byte)inputstream.read();

                a_javax_microedition_lcdui_Image_array1d_fld[byte0] = Image.createImage(abyte0, 0, word0);
            }

            inputstream.close();
            return;
        }
        catch(IOException _ex)
        {
            return;
        }
    }

    public final void run()
    {
        while(!b_boolean_fld) 
        {
            switch(a_int_fld)
            {
            default:
                break;

            case 1: // '\001'
                if(b_int_fld < 0)
                {
                    b_int_fld++;
                    d = 0;
                } else
                {
                    a_boolean_fld = true;
                }
                break;

            case -1: 
                a_boolean_fld = false;
                if(b_int_fld > -1 * c)
                {
                    b_int_fld--;
                    d = 0;
                }
                break;
            }
            try
            {
                Thread.sleep(e);
            }
            catch(InterruptedException _ex) { }
        }
    }

    public Thread a_java_lang_Thread_fld;
    private static int e = 10;
    private boolean b_boolean_fld;
    public int a_int_fld;
    public int b_int_fld;
    private Image a_javax_microedition_lcdui_Image_array1d_fld[];
    public short a_short_array2d_fld[][];
    private b a_b_fld;
    public Graphics a_javax_microedition_lcdui_Graphics_fld;
    public int c;
    public int d;
    public boolean a_boolean_fld;

}


Ngay lập tức sau Decompile em lại save thành .java rồi Compile thì cũng gặp bảng thông báo lỗi - dù chưa sửa chút nào:


Ngoài ra các file khác cũng bị như vậy - sau khi thử vài file nữa trong bộ đó - Ko hiểu tại sao nhỉ ?
[Up] [Print Copy]
  [Question]   Làm sao để Compile từ .java sang .class 21/12/2006 18:54:52 (+0700) | #4 | 31783
[Avatar]
tuantub
Member

[Minus]    0    [Plus]
Joined: 15/08/2006 06:45:48
Messages: 81
Offline
[Profile] [PM]
tất cả các class của java phải lấy tên với chữ cái đầu viết hoa, "a.java" và "class a" là không đúng
[Up] [Print Copy]
  [Question]   Re: Làm sao để Compile từ .java sang .class 21/12/2006 19:06:28 (+0700) | #5 | 31786
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
Chào Echip HN,

Tất cả những lỗi "cannot find symbol" là do các thư viện hỗ trợ cho class đó không có trên classpath trong quá trình biên dịch. Bồ không nên "hack" ngang xương thế này mà nên nghiên cứu thêm các đòi hỏi cơ bản cho việc biên dịch java class.

Thân mến.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Re: Làm sao để Compile từ .java sang .class 20/06/2008 12:57:26 (+0700) | #6 | 136531
vietnux
Member

[Minus]    0    [Plus]
Joined: 20/06/2008 01:49:54
Messages: 3
Offline
[Profile] [PM] [WWW]

conmale wrote:
Chào Echip HN,

Tất cả những lỗi "cannot find symbol" là do các thư viện hỗ trợ cho class đó không có trên classpath trong quá trình biên dịch. Bồ không nên "hack" ngang xương thế này mà nên nghiên cứu thêm các đòi hỏi cơ bản cho việc biên dịch java class.

Thân mến. 

Theo đại ca thf khắc phục lỗi này như thế nào ??? em cũng gặp trường hợp trên, báo lỗi hàm writeUTF() mà kiểm tra thư viện đã có đủ rùi !!!
Hic
có ai giúp em với !!!
Thư có thể gủi về địa chỉ vietnux@yahoo.com
Thank nhiều lắm !!!
Trang chủ: http://vietnux.com
[Up] [Print Copy]
  [Question]   Re: Làm sao để Compile từ .java sang .class 05/07/2008 05:33:35 (+0700) | #7 | 139956
ilyuna
Member

[Minus]    0    [Plus]
Joined: 27/08/2004 22:58:01
Messages: 1
Offline
[Profile] [PM]
ủa cái này đơn giản mà ta. Sao bạn ko xài bộ JDK ah. hình như bản mới nhất là 1.5 thì phải.
chỉ cần vào CMD gõ vào "javac myifile.java". nếu ko có lỗi thì nó sẽ dịch ra thành thành file class. để chạy thì gõ java myfile.
[Up] [Print Copy]
  [Programming]   Re: Làm sao để Compile từ .java sang .class 18/09/2009 02:15:04 (+0700) | #8 | 193134
eyestv
Member

[Minus]    0    [Plus]
Joined: 09/05/2008 13:55:20
Messages: 67
Offline
[Profile] [PM]

conmale wrote:
Chào Echip HN,

Tất cả những lỗi "cannot find symbol" là do các thư viện hỗ trợ cho class đó không có trên classpath trong quá trình biên dịch. Bồ không nên "hack" ngang xương thế này mà nên nghiên cứu thêm các đòi hỏi cơ bản cho việc biên dịch java class.

Thân mến. 


Trong Ubuntu chỉnh lỗi này bằng cách nào vậy anh?

Hi vọng anh Step by step hộ em. Thú thực em ko còn thời gian nghiên cứu những vấn đề phát sinh nữa smilie
[Up] [Print Copy]
  [Programming]   Làm sao để Compile từ .java sang .class 01/05/2011 22:39:13 (+0700) | #9 | 236504
ngminhtuan
Member

[Minus]    0    [Plus]
Joined: 02/11/2010 05:05:46
Messages: 1
Offline
[Profile] [PM]
Mọi người giúp em đoạn này với, em làm theo hướng dẫn , đến đoạn ấn lệnh dir vẫn bình thường ~~nhưng đến lúc ấn javac (tên file java cần compile).java thì nó hiện lên một lỗi là 'javac' không được công nhận ...(em thấy có not recognized nên nghĩ vậy ) giúp em cách fix lỗi này , jdk em dùng là 1.6.0
[Up] [Print Copy]
  [Programming]   Làm sao để Compile từ .java sang .class 02/05/2011 09:09:35 (+0700) | #10 | 236515
keq9
Member

[Minus]    0    [Plus]
Joined: 07/07/2007 22:59:15
Messages: 28
Offline
[Profile] [PM]

ngminhtuan wrote:
Mọi người giúp em đoạn này với, em làm theo hướng dẫn , đến đoạn ấn lệnh dir vẫn bình thường ~~nhưng đến lúc ấn javac (tên file java cần compile).java thì nó hiện lên một lỗi là 'javac' không được công nhận ...(em thấy có not recognized nên nghĩ vậy ) giúp em cách fix lỗi này , jdk em dùng là 1.6.0 


bạn chưa thiết lập biến môi trường PATH của windows chỉ đến đường dẫn cài đặt của jdk nên trên cmd không thể gõ javac được mã sẽ phải gõ một đường dẫn đầy đủ đại loại như này c:\program files...\bin\javac

Bạn xem hướng dẫn ở đây, chú ý khoảng thời gian từ phút thứ 4 trở đi http://www.youtube.com/watch?v=Hl-zzrqQoSE
[Up] [Print Copy]
  [Programming]   Làm sao để Compile từ .java sang .class 02/05/2011 22:00:02 (+0700) | #11 | 236537
[Avatar]
secmask
Elite Member

[Minus]    0    [Plus]
Joined: 29/10/2004 13:52:24
Messages: 553
Location: graveyard
Offline
[Profile] [PM] [WWW]
Không có gì đảm bảo rằng bạn decompile 1 file .class -> .java rồi lại dịch file .java sang .class được cả, nhất là với trường hợp file .class của bạn đã được obfuscate. Bởi do đặc tả của JVM "thoáng" hơn là đặc tả của Java language nên có một số điều được phép trong mã byte code nhưng không có mã tuơng ứng trong java language.
edit: không để ý ngày tháng lại đi đào xới rồi smilie
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|