[第155期] Java手机应用开发常见问题解析

企业动态
通过搜索引擎搜索Java手机开发,你会发现大部分都是招聘信息。这也说明了目前国内急需Java手机开发人才!而Java开发本身就让人感觉有一定难度,也许你还在犯嘀咕:我适不适合搞Java开发?搞Java手机开发有前途吗?Java手机开发难吗?我在Java开发中遇到些问题,是怎么回事呢?

通过搜索引擎搜索Java手机开发,你会发现大部分都是招聘信息。这也说明了目前国内急需Java手机开发人才!而Java开发本身就让人感觉有一定难度,也许你还在犯嘀咕:我适不适合搞Java开发?搞Java手机开发有前途吗?Java手机开发难吗?我在Java开发中遇到些问题,是怎么回事呢?

技术门诊是51CTO社区品牌栏目,每周邀请一位客座专家,为广大技术网友解答疑问。从热门技术到前沿知识,从技术答疑到职业规划。每期一个主题,站在最新最热的技术前沿为你引航

本期门诊特邀请高级软件工程师、项目经理李宁与大家交流Java开发的问题。上面所提到的以及其他延伸的Java问题,都可以和李宁进行交流、讨论。

姓名:李宁

[[10534]]

擅长领域:Java、Android/Ophone

高级软件工程师、项目经理、东北大学计算机专业硕士。十多年软件开发经验。领导并参与开发中学教务管理系统、印刷物资公司管理系统、网上评卷系统等十几个大中型项目。个人作品:多功能日历(Android版)、新浪微博客户端(Android)。国内知名媒体专栏文章100余篇。著有《Java Web开发技术大全》、《Java Web开发速学宝典》。新书《Android/OPhone开发完全讲义》和《开心无敌:基于Web和Android的SNS开发》(书名暂定)将在近期出版。

 查看本期门诊精彩实录:http://doctor.51cto.com/develop-168.html

参与最新技术门诊:http://doctor.51cto.com/

精选本期网友提问与专家解答,以供网友学习参考。

李宁 如果在windows下,可以通过右键我的电脑的系统属性设置JAVA_HOME以及其他的环境变量,在Linux的设置的地方很多,如在/etc/profile文件中设置

Q:请问专家:如何设置Java 2(JDK1.2)的环境变量?

Q:再问一个:哪些Java集成开发工具支持Java 2? 希望专家解答,谢谢!

 李宁 你是说JDK1.2吗?这个版本比较老,不过目前象eclipse、netbeans等开发工具都可以用老版本的jdk,还有比较简单的jcreator也是一样。

Q:专家您好!请问,在Java applet中如何实现一个模式对话框谢谢!

 李宁 Dialog d = new Dialog( getParentWindow(comp),title);

Q:专家您好!请问要从事j2me的手机游戏开发应该看那些书?我学过一些java,现在要搞手机游戏,那些书比较好?谢谢!

 李宁 搞游戏首先应了解一下游戏的原理。至于看哪些书,这个不太好回答,因为这些因人而异。不过可以找一些简单的j2me游戏的例子,直接看一下代码,代码是最好的指导老师。

QAndroid 中如何引用核心的资源?谢谢专家!

 李宁 不知核心资源主要指的是什么,是系统内核的资源(图像、主题吗)?

Qimport java.io.File;  

import java.util.HashMap;  
import java.util.List;  
import java.util.Map;  
 
import org.dom4j.Document;  
import org.dom4j.DocumentException;  
import org.dom4j.Element;  
import org.dom4j.io.SAXReader;  
 
 
public class XMLTest {  
    //filename D:\\SWTdemo\\eg.xml  
    private Map<String, String> readXml(String filename) {  
        File file = new File(filename);  
        SAXReader reader = new SAXReader();  
        Map<String, String> map = new HashMap<String, String>();  
        try {  
            Document doc = reader.read(file);  
            Element root = doc.getRootElement();  
            List<Element> listmsg = root.elements();  
            if(listmsg.size()==0)  
                return null;  
            for (Element element : listmsg) {  
                map.put(element.getName(), element.getText());  
            }  
        } catch (DocumentException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
        return map;  
    }  
    public static void main(String[] args) {  
        XMLTest xml = new XMLTest();  
        Map<String, String> map = xml.readXml("http://127.0.0.1:8983/sparkweb/eg.xml");  
        System.out.println("服务器:"+map.get("server"));  
    }  
 
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
 
 
public class XMLTest {
    //filename D:\\SWTdemo\\eg.xml
    private Map<String, String> readXml(String filename) {
       File file = new File(filename);
        SAXReader reader = new SAXReader();
        Map<String, String> map = new HashMap<String, String>();
        try {
            Document doc = reader.read(file);
            Element root = doc.getRootElement();
            List<Element> listmsg = root.elements();
            if(listmsg.size()==0)
                return null;
            for (Element element : listmsg) {
                map.put(element.getName(), element.getText());
            }
        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return map;
    }
    public static void main(String[] args) {
        XMLTest xml = new XMLTest();
        Map<String, String> map = xml.readXml("http://127.0.0.1:8983/sparkweb/eg.xml");
        System.out.println("服务器:"+map.get("server"));
    }
}
这个是我的代码.如果传入本地的文件就是正确的.如果我传入一个URL路径的话就会报找不到这个文件.同样的xml文件放的位置不一样.我想问问如果要这样做怎么办.(提示我只能)

 李宁 File只能打开本地文件,如果是远程的文件(如http、ftp等),需要使用与HTTP、FTP等相关类库先从网络上下载(可以是内存流形式),然后再使用read来读取。

Q:最新经常看到新闻说Java漏洞致Windows面临攻击危机,请问专家如何看待这次的Java危机?

 李宁 漏洞经常会有的,尤其是现在软件做得越来越复杂,虽然这次漏洞可能会使window用户造成一定的危害,但对大多数人并没有什么问题。以后还会出现很多这样的漏洞的。我们要做的是只能尽量使用防火墙和防毒软件了。

Q:专家您好!我是Java学习的新手,问一个小问题:方法名是否可以与构造器的名字相同?

 李宁 可以的,甚至参数也可以一样。因为构造方法没有返回值,所以编译器可以区分哪个是普通方法,哪个是构造方法。

Q:请问李老师,Java手机程序员主要是从事手机游戏的开发吗?

 李宁 手机程序一般包括手机应用(包括web游戏)和手机游戏。

Q:李老师,您好:近几个月,JAVA在编程语言的排行榜不断下滑,不再是往日的第一,再加上风传甲骨文决定不再实行JAVA开源,是不是标志着JAVA已经到了盛极而衰的时刻。

 李宁 记得十多年前计算机行业还不发达,计算机专业并不象现在这么热。那时的热门专业是机械、电子等传统专业,然而,谁能想到进入21世纪以来计算机和互联网领域会发展如此之快呢?相反象机械等传统专业已远不如计算机热了。 技术也是一样,没人知道未来会是什么样子,就算现在选一种非常热门的技术,谁又能保证在自己学到一定程度时仍然会很热门呢!因此,学什么并不重要,重要的是能在最段的时间内掌握。现在的IT技术更新如此之快,单纯靠会Java、C#、C++这些语言已经很难找到好的工作了,关键是要掌握快速学习技术的方法。

另外一点就是Sun虽然被Oracle收购,但目前Java已经开源,而且支持Java的不只Oracle一家,IBM和Google是Oracle的两个强大的竞争对手。IBM和Google的很多产品都使用Java开发,他们不会允许Oracle自己独霸Java。再有就是Java实际上是一种规范,就象C++一样,只是一种标准,谁根据这种语言都可以设计出Java编译器和解析器的。象Google不是在android中自己设计了一个新的Java虚拟机吗!所以Java至少在可预见的未来仍然会成为开发语言的生力军。当然,除了Java,再多会一些其他的语言和技术也会使自己如虎添翼。

Q:李老师你好:我正在考虑是否去学习JAVA,Java现在虽然很强势,但您预计一下Java在未来的市场中会强盛持续多久!

 李宁 很多初学者都会提出这样的问题。实际上,任何人预测的未来都是不可信的,未来只有时间他老人家才能准确无误地回答我们。虽然未来无法精确预测,但可以肯定地说,现在任何一种语言都不具有绝对的优势来取代其他的语言。Java已经有15年的历史了,与Java相关的产品成千上万。Java的开发人员也相对较多。而且现在还没有出现能完全取代Java的技术,或者说在短期内不可能出现这样的技术,因此,Java至少还会存在很长的时间,也就是说,必须为新的技术留出足够长的孕育期才不会出现断档。

QJava的前景怎么样!我们学校最近有个CSTP的软件培训工程,来我校讲坐,在他的讲述下,感觉前景很好!

 李宁 Java至少在可预见的未来仍然会属于最热门的语言之一。但并不是Java流行或热门,学它就万事大吉,关键并不在于语言本身,而在于谁在使用它。在于学得怎样。只有Java能力(并不是指会一大堆api,这毫无意义,而在于分析问题解决问题的能力)达到了一定的高度,才能获得足够的精神和物质享受。

Q:请问专家:如果在NetscapeIE浏览器中运行Java applet时出现了错误,如何确定错误范围?

 李宁 运行applet错误的情况可能有三个:1、applet的路径不对,仔细检查代码中的路径。2、jre安的不对,客户端未完装正确的jre。3,浏览器关闭了外部插件,重新打开即可。 当然,还可能是程序本身的错误。需要一个个来排除。

Q:请教专家:如何设置Java WebServerCLASSPATH,以包含用户的class文件?

 李宁 一般的web server都有一个lib或类似的目录,把jar或class文件放到该目录就可以了。或设置操作系统的classpath也可以。当然,也可以在启动webserver的脚本文件中添加设置classpath的代码。 

Q:请问专家:我在eclipse想运行helloworld.java程序,把所需的jar包都已经加入到工程中了,我在运行helloworld.opt时编译错误,helloworld.opt文件如下:

-out EXP JCA CAP
-exportpath C:\java_card_kit-2_2_1\api_export_files
-applet 0xa0:0x0:0x0:0x0:0x62:0x3:0x1:0xc:0x1:0x1
 
com.sun.javacard.samples.HelloWorld.HelloWorld
com.sun.javacard.samples.HelloWorld
0xa0:0x0:0x0:0x0:0x62:0x3:0x1:0xc:0x1 1.0
显示:error: invalid AID -config.但我在com命令窗口运行converter -config helloworld.opt 没有任何问题。这是什么问题呀?请专家多多帮忙!谢谢!!!

 

李宁 我没用过 Java Card SDK 2.2.1,但你可以参考如下的这篇文章http://forums.sun.com/thread.jspa?threadID=5432495

Q:初入编程,了解甚少,java是开发软件吧,javascriptweb开发,他们有关系吗,学java的话是不是一定要吧JavaScript也学好,本人喜欢软件开发,不喜欢web的开发,现在都懒的去学web,不知道有没联系,如果学习java的话还要学习其他方面的什么知识?谢谢了!

 李宁 java可以做移动、企业和桌面应用。学移动要学java me、学企业要学java ee,也有部分涉及到web的,学桌面主要学java se。

QJAVA中用STRUTS框架能把所有的动作写在一个ACTION里吗,求专家指点迷津!

 

李宁 从技术上没问题,但最好不要这样做。应为成不同的Action,这样使程序更容易维护。

Q:专家您好,对于初学者推荐看那几本书?谢谢

 李宁 我比较喜欢thinking in java ,不过对于初学者可以选择一些入门的书。教你个方法,在网上书店,查一下,看哪些java书关注度最高,评价最好,就看哪本。

 

Q:请问编写java有一套比较实用的思维模式吗?   

李宁 思维模式模式都是私有的,只有适合自己的才是最好的。

Qdephi java 怎么样?

李宁 这个不太好回答。为什么要转呢?可以将java作为第二语言,没有必要放弃delphi.

 

Q:李老师我想问问Java的发展趋势是什么?为什么好多人研究Java而不能得到高薪的工作,这点很让人郁闷。

 李宁 Java和高薪并不画等号。这就象都是做生意的,可不一定都能开上宝马,有很多开公司的还不如上班挣的多,而且还很累。想高薪,就要看看自己能为自己所服务的企业带来什么。如果自己是这个企业的老板,那么会给与自己同样水平的人多少薪水呢? 光研究Java是没有什么实际的价值的,要看可以用java做出什么,所做出的东西有多少人用。几年前张小龙用delphi做的foxmail卖了2000万,就是因为foxmail有数百万的用户。如果我们做的软件拥有庞大的用户群,无论是为企业做的,还是为自己做的,都会得到另自己满意的回报。

查看更多精彩门诊:http://doctor.51cto.com/

责任编辑:佚名 来源: 51CTO
相关推荐

2010-03-16 11:05:11

2009-10-26 11:11:22

接入网常见问题

2012-10-11 10:26:44

云计算应用程序部署

2010-05-12 17:04:20

BlackBerry开

2010-07-01 17:18:02

UML包图

2018-03-08 14:00:02

2010-08-04 10:20:30

Flex组件开发

2020-11-10 23:06:38

物联网智能产品开发IOT

2009-02-04 18:20:42

服务器虚拟化VMware

2011-08-24 09:54:05

Lua字符春交互

2011-07-21 11:19:51

JAVA

2009-10-13 14:56:00

CCNA培训

2011-07-13 17:57:15

SQLite

2011-08-09 15:10:00

SQLite

2023-10-10 08:01:13

2010-09-13 14:43:47

无线技术常见问题

2011-01-21 14:13:10

2016-12-14 12:00:27

手机APPADB

2013-09-01 09:32:34

移动技术半月刊

2010-08-10 15:09:55

Flex开发
点赞
收藏

51CTO技术栈公众号