[第155期] Java手机应用开发常见问题解析
创始人
2024-06-29 11:30:44
0次

通过搜索引擎搜索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游戏的例子,直接看一下代码,代码是最好的指导老师。

Q:Android 中如何引用核心的资源?谢谢专家!

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

Q: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 readXml(String filename) {           File file = new File(filename);           SAXReader reader = new SAXReader();           Map map = new HashMap();           try {               Document doc = reader.read(file);               Element root = doc.getRootElement();               List 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 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 readXml(String filename) {        File file = new File(filename);         SAXReader reader = new SAXReader();         Map map = new HashMap();         try {             Document doc = reader.read(file);             Element root = doc.getRootElement();             List 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 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至少还会存在很长的时间,也就是说,必须为新的技术留出足够长的孕育期才不会出现断档。

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

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

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

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

Q:请教专家:如何设置Java WebServer的CLASSPATH,以包含用户的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是开发软件吧,javascript是web开发,他们有关系吗,学java的话是不是一定要吧JavaScript也学好,本人喜欢软件开发,不喜欢web的开发,现在都懒的去学web,不知道有没联系,如果学习java的话还要学习其他方面的什么知识?谢谢了!

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

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

 

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

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

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

 

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

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

Q:dephi 转java 怎么样?

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

 

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

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

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

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...