JAVA基础:Java程序跨平台需要注意什么

JAVA基础:Java程序跨平台需要注意什么,第1张

使用Java语言编写应用程序的优点在于“一次编译,处处运行”,然而这并不是说所有的Java程序都具有跨平台的特性,事实上,相当一部分的Java程序是不能在别的 *** 作系统上正确运行的,那么如何才能编写一个真正的跨平台的Java程序呢下面是在编写跨平台的Java程序是需要注意的一些事情:

1编写Java跨平台应用程序时,你可以选择JDK10,11,12或支持它们的GUI开发工具如:Jbuilder,VisualAgeforJava等等,但是必须注意你的Java程序只能使用Java核心API包,如果要使用第三方的类库包,则该类库包也要由Java核心包开发完成,否则在发布你的程序的时候还得将支持该Java类库包的JVM发布出去。也就是说,你的程序需要是100%纯Java的。举一个例子,VisualJ++就不是纯Java的,由VisualJ++编写的程序也就不具有平台无关性。

2无论你使用的是JDK或其他开发工具,在编译时都要打开所有的警告选项,这样编译器可以尽可能多的发现平台相关的语句,并给出警告。虽然不能保证没有编译时警告错误的程序一定是跨平台的,但含有警告错误的程序却很有可能是非平台无关的。

3在程序中使用任何一个方法的时候,要详细察看文档,确保你使用的方法不是在文档中已经申明为过时的方法(Deprecatedmethod),也不是文档中未标明的隐含方法(Undocumentedmethod)。

4退出Java程序时尽量不要使用javalangSystem的exit方法。Exit方法可以终止JVM,从而终止程序,但如果同时运行了另一个Java程序,使用exit方法就会让该程序也关闭,这显然不是我们希望看到的情况。事实上要退出Java程序,可以使用destory()退出一个独立运行的过程。对于多线程程序,必须要关闭各个非守护线程。只有在程序非正常退出时,才使用exit方法退出程序。

5避免使用本地方法和本地代码,尽可能自己编写具有相应功能的Java类,改写该方法。如果一定要使用该本地方法,可以编写一个服务器程序调用该方法,然后将现在要编写的程序作为该服务器程序的客户程序,或者考虑CORBA(公共对象请求代理)程序结构。

6Java中有一个类似于Delphi中的winexec的方法,javalangruntime类的exec方法,作为该方法本身是具有平台无关性的,但是给方法所调用的命令及命令参数却是与平台相关的,因此,在编写程序时要避免使用,如果一定要调用其他的程序的话,必须要让用户自己来设置该命令及其参数。比如说,在windows中可以调用notepadexe程序,在linux中就要调用vi程序了。

7程序设计中的所有的信息都要使用ASCII码字符集,因为并不是所有的 *** 作系统都支持Unicode字符集,这对于跨平台的Java中文软件程序不能不说是一大噩耗。

8在程序中不要硬性编码与平台相关的任何常量,比如行分隔符,文件分隔符,路径分隔符等等,这些常量在不同的平台上是不同的,比如文件分隔符,在UNIX和MAC中是“/”,在windows中是“\”,考试,大提示如果要使用这些常量,需要使用jdavautilProperties类的getProperty方法,如javautilPropertiesgetProperty(“fileseparator”)可以获得文件分隔符,getProperty(“lineseparator”)返回行分隔符,getProperty(“pathseparator”)返回路径分隔符。

9在编写跨平台的网络程序时,不要使用javanetInetAddress类的getHostName方法得到主机名,因为不同的平台的主机名格式是不同的,使用getAddress得到格式相同的IP地址,另外,程序中所有的主机名都要换成IP地址,比如>

File file=new File("textjava");

String filePath=filegetAbsolutePath();

就这样用,

public String getAbsolutePath()返回此抽象路径名的绝对路径名字符串。

如果此抽象路径名已经是绝对路径名,则返回该路径名字符串,这与 getPath() 方法一样。如果此抽象路径名是空抽象路径名,则返回当前用户目录的路径名字符串,该目录由系统属性 userdir 指定。否则,使用与系统有关的方式解析此路径名。在 UNIX 系统上,根据当前用户目录解析相对路径名,可使该路径名成为绝对路径名。在 Microsoft Windows 系统上,根据路径名指定的当前驱动器目录(如果有)解析相对路径名,可使该路径名成为绝对路径名;否则,可以根据当前用户目录解析它。

返回:

绝对路径名字符串,它与此抽象路径名表示相同的文件或目录

getPath

public String getPath()将此抽象路径名转换为一个路径名字符串。所得字符串使用默认名称分隔符分隔名称序列中的名称。

返回:

此抽象路径名的字符串形式(相对路径)

getName

public String getName()返回由此抽象路径名表示的文件或目录的名称。该名称是路径名名称序列中的最后一个名称。如果路径名名称序列为空,则返回空字符串。

返回:

此抽象路径名表示的文件或目录的名称;如果路径名的名称序列为空,则返回空字符串

要API的话,我给你发(中文api),留个邮箱就行

>

那你把你的java代码拿出来看看啊,只是看到了最后的结果,你不是应该在Java的写文件 *** 作中直接将逗号改成分号就可以了啊。我记得excel可以另存为csv的文件的时候可以选择分割符。

读取java文件就要用到io了,每一个单词应该会有分隔符,可能是空格,逗号import javaioBufferedReader;

import javaioFile;

import javaioFileInputStream;

import javaioIOException;

import javaioInputStreamReader;

public class FileTest {

/

@param args

@throws IOException

/

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

File file = new File(""/ 文件名 /

);

FileInputStream fis = new FileInputStream(file);

InputStreamReader isr = new InputStreamReader(fis);

BufferedReader br = new BufferedReader(isr);

String sb = "";

int count = 0;

sb = brreadLine();

while (sb != null) {

String[] array = sbsplit(" "/ 文件分隔符 /

);

for (String string : array) {

if (stringequals("while")) {

count++;

}

}

sb = brreadLine();

}

Systemoutprintln(count);

}

}

以上就是关于JAVA基础:Java程序跨平台需要注意什么全部的内容,包括:JAVA基础:Java程序跨平台需要注意什么、java中如何获取文件的路径并赋给一个字符串变量、java生成CSV文件,默认的分隔符为,(英文版的逗号)怎么使他改为;(分号)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9594585.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存