QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1039|回复: 12

linux下java问题

[复制链接]
发表于 2003-5-20 14:04:36 | 显示全部楼层 |阅读模式
我在windows下编译通过的java程序要怎么修改才能在linux下编译,我用gcj总是出错.应该是代码的问题.
发表于 2003-5-20 16:28:10 | 显示全部楼层
在WIN下您是用哪家的JAVA来编译的?

如果是SUN的JDK的话一般来说只要WIN下成功了在LINUX下也没问题的
回复

使用道具 举报

发表于 2003-5-20 17:34:35 | 显示全部楼层
please put on your source code!
回复

使用道具 举报

 楼主| 发表于 2003-5-21 09:28:12 | 显示全部楼层
我就是用的javac编译的,是一个applet程序,下面是代码


import java.awt.*;
import java.awt.event.*;
import java.applet.*;

class People extends Button implements FocusListener
{
        Rectangle rect=null;
        int left_x,left_y;
        int width,height;
        String name; int number;
        People(int number,String s,int x,int y,int w,int h,HuaRongRoad road)
        {
                super(s);
                name=s;this.number=number;
                left_x=x;left_y=y;
                width=w;height=h;
                setBackground(Color.yellow);
                road.add(this);
                addKeyListener(road);
                setBounds(x,y,w,h);
                addFocusListener(this);
                rect=new Rectangle(x,y,w,h);
        }
        public void focusGained(FocusEvent e)
        {
                setBackground(Color.red);
        }
        public void focusLost(FocusEvent e)
        {
                setBackground(Color.yellow);
        }
}
public class HuaRongRoad extends Applet implements KeyListener,ActionListener
{
        People people[]=new People[10];
        Rectangle left,right,above ,below;
        Button restart=new Button("重新开始");
        public void init()
        {
                setLayout(null);
                add(restart);
                restart.setBounds(5,5,80,25);
                restart.addActionListener(this);
                people[0]=new People(0,"曹操",104,54,100,100,this);
                people[1]=new People(1,"关羽",104,154,100,50,this);
                people[2]=new People(2,"张飞",54, 154,50,100,this);
                people[3]=new People(3,"刘备",204,154,50,100,this);
                people[4]=new People(4,"张辽",54, 54, 50,100,this);
                people[5]=new People(5,"曹仁",204, 54, 50,100,this);
                people[6]=new People(6,"兵",54,254,50,50,this);
                people[7]=new People(7,"兵",204,254,50,50,this);
                people[8]=new People(8,"兵",104,204,50,50,this);
                people[9]=new People(9,"兵",154,204,50,50,this);
                people[9].requestFocus();
                left=new Rectangle(49,49,5,260);
                people[0].setForeground(Color.green);
                right=new Rectangle(254,49,5,260);
                above=new Rectangle(49,49,210,5);
                below=new Rectangle(49,304,210,5);
        }
        public void paint(Graphics g)
        {
                g.setColor(Color.blue);
                g.fillRect(49,49,5,260);
                g.fillRect(254,49,5,260);
                g.fillRect(49,49,210,5);
                g.fillRect(49,304,210,5);
                g.drawString("点击相应的人物,用上下左右箭头移动",100,20);
                g.setColor(Color.red);
                g.drawString("使曹操到达此处",110,330);
        }
        public void keyPressed(KeyEvent e)
        {
                People man=(People)e.getSource();
                man.rect.setLocation(man.getBounds().x, man.getBounds().y);
                if(e.getKeyCode()==KeyEvent.VK_DOWN)
                {
                        man.left_y=man.left_y+50;
                        man.setLocation(man.left_x,man.left_y);
                        man.rect.setLocation(man.left_x,man.left_y);
                        for(int i=0;i<10;i++)
                        {
                                if((man.rect.intersects(people.rect))&&(man.number!=i))
                                {
                                        man.left_y=man.left_y-50;
                                        man.setLocation(man.left_x,man.left_y);
                                        man.rect.setLocation(man.left_x,man.left_y);
                                 }
                        }
                        if(man.rect.intersects(below))
                        {
                                man.left_y=man.left_y-50;
                                man.setLocation(man.left_x,man.left_y);
                                man.rect.setLocation(man.left_x,man.left_y);
                        }
                }
                if(e.getKeyCode()==KeyEvent.VK_UP)
                {
                        man.left_y=man.left_y-50;
                        man.setLocation(man.left_x,man.left_y);
                        man.rect.setLocation(man.left_x,man.left_y);
                for(int i=0;i<10;i++)
                        {
                                if((man.rect.intersects(people.rect))&&(man.number!=i))
                                {
                                        man.left_y=man.left_y+50;
                                        man.setLocation(man.left_x,man.left_y);
                                        man.rect.setLocation(man.left_x,man.left_y);
                                }
                }
                        if(man.rect.intersects(above))
                        {
                                man.left_y=man.left_y+50;
                                man.setLocation(man.left_x,man.left_y);
                                man.rect.setLocation(man.left_x,man.left_y);
                        }
                }
                if(e.getKeyCode()==KeyEvent.VK_LEFT)
                {
                        man.left_x=man.left_x-50;
                        man.setLocation(man.left_x,man.left_y);
                        man.rect.setLocation(man.left_x,man.left_y);
                        for(int i=0;i<10;i++)
                        {
                                if((man.rect.intersects(people.rect))&&(man.number!=i))
                                {
                                        man.left_x=man.left_x+50;
                                        man.setLocation(man.left_x,man.left_y);
                                        man.rect.setLocation(man.left_x,man.left_y);
                                }
                        }
                        if(man.rect.intersects(left))
                        {
                                man.left_x=man.left_x+50;
                                man.setLocation(man.left_x,man.left_y);
                                man.rect.setLocation(man.left_x,man.left_y);
                        }
                }
                if(e.getKeyCode()==KeyEvent.VK_RIGHT)
                {
                        man.left_x=man.left_x+50;
                        man.setLocation(man.left_x,man.left_y);
                        man.rect.setLocation(man.left_x,man.left_y);
                for(int i=0;i<10;i++)
                        {
                                if((man.rect.intersects(people.rect))&&(man.number!=i))
                                {
                                        man.left_x=man.left_x-50;
                                        man.setLocation(man.left_x,man.left_y);
                                        man.rect.setLocation(man.left_x,man.left_y);
                                }
                        }
                        if(man.rect.intersects(right))
                        {
                                man.left_x=man.left_x-50;
                                man.setLocation(man.left_x,man.left_y);
                                man.rect.setLocation(man.left_x,man.left_y);
                        }
                }
        }
        public void keyTyped(KeyEvent e)
        {
        }
        public void keyReleased(KeyEvent e)
        {
        }
        public void actionPerformed(ActionEvent e)
        {
                this.removeAll();
                this.init();
        }
}
回复

使用道具 举报

发表于 2003-5-21 09:36:21 | 显示全部楼层
华容道?
呵呵,我在学java,但还没有看到编程。还在学习概念。
回复

使用道具 举报

发表于 2003-5-21 10:04:55 | 显示全部楼层
错误信息是什么 简单的看代码来说 有可能是不支持中文的问题 (你居然还把中文给写进去了...)
回复

使用道具 举报

发表于 2003-5-21 10:08:18 | 显示全部楼层

先试试dos2unix

dos2unix yourjavafilename yourjavafilename
很可能java文件是windows格式的,所以编译不通过
一般来说只要windows下编译通过的代码,linux不可能编译通不过的
回复

使用道具 举报

 楼主| 发表于 2003-5-21 19:01:33 | 显示全部楼层
错误代码是:
[root@localhost Random]# gcj HuaRongRoad.java
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x1: In function `_start':
../sysdeps/i386/elf/start.S:77: undefined reference to `main'
collect2: ld returned 1 exit status
回复

使用道具 举报

发表于 2003-5-21 19:33:17 | 显示全部楼层
这错误信息 怎么看都不像是java的阿... 你为什么不用javac编译呢?
回复

使用道具 举报

发表于 2003-5-21 20:52:25 | 显示全部楼层

我知道了,是JAVA APPLET,写个HTML文件

我知道了,是JAVA APPLET,写个HTML文件包含APPLET声明候用APPLETVIEWER来运行久可以了
回复

使用道具 举报

发表于 2003-5-22 11:11:46 | 显示全部楼层
用javac来编译楼主的程序不会有任何出错信息的啦
编译完成后写一个HTML来执行就好了...
我写了一个如下:
[code:1]
<html>
  <head>
      <title>HuaRongRoad Test</title>
  </head>
  <body>
      <h1>HuaRongRoad Test</h1>
      <hr>
      <applet code=HuaRongRoad.class width=400 height=400></applet>
      <hr>
      <a href="HuaRongRoad.java">The source</a>.
  </body>
</html>
[/code:1]
回复

使用道具 举报

发表于 2003-5-25 14:35:46 | 显示全部楼层
<html>
  <head>
      <title>HuaRongRoad Test</title>
  </head>
  <body>
      &lt;h1&gt;HuaRongRoad Test&lt;/h1&gt;
      &lt;hr&gt;
      &lt;applet code=HuaRongRoad.class width=400 height=400&gt;&lt;/applet&gt;
      &lt;hr&gt;
      &lt;a href="HuaRongRoad.java"&gt;The source&lt;/a&gt;.
  </body>
&lt;/html&gt;

把APPLET嵌入到html中啊
回复

使用道具 举报

发表于 2003-5-25 14:37:31 | 显示全部楼层
我对java理解较浅,世面上java的编辑器有很多,到底有什么区别啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-15 20:03 , Processed in 0.059886 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表