澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

澳门新浦京娱乐场网站Dos命令与java运行流程,环

症状回放:

在学校实训的这几天,老师带着我们开始深入的复习java。这是第一天的内容哦

MAX_PATH的解释: 文件名最长256(ANSI),加上盘符(X:)3字节,259字节,再加上结束符1字节,共260

如何开启DOS命令行:

最近安装一个Delphi的控件,结果,在安装之后启动Delphi时出现了找不到相关文件的错误。一开始以为是Delphi内的Library路径没有添加,查看,一切正常。再次启动Delphi,提示说将xxx路径插入到PATH环境变量中失败,原因是PATH变量超出长度限制。

对于“JAVA设置环境变量和在DOS下运行java程序”,许多初学者是陌生的,但了解这个却对后期的学习很重要。

windows下,全文件名的字符长度是有限制的,众所周知,是MAX_PATH,260。对于这个,几点具体解释:

A、开始 -----> 搜索cmd ---> 回车

查找根源:

  1. 这个260指的是包含目录到文件名的全路径字符长度。
  2. 实际上,测试可以发现:
    --加上null,你在资源管理器里只能创建259个字符的全文件名,即实际上只能创建MAX_PATH -2 = 258字符的路径。
    --你可以创建c:长目录abc.txt <= 258,也可以创建c:abc长文件名.txt <= 258。
    --创建每一级目录的时候,可以输入的目录名字符是有限制的,规则就是:至少保留下了 11个字符(8.3规则?)使得最内层目录仍然可以创建出文件。
    --但是,比如你创建了C:abc长文件名.txt,然后呢,重命名目录abc,这时候,你可以创建出一个总长度超过MAX_PATH的全文件名。相当tricky。

B、win7 特有:进入文件所在路径 ----> 按住shift ----> 右击 -----> 在此处打开命令行窗口

根据Delphi的提示,打开环境变量设置窗口,发现PATH变量确实不短(安装了很多开发工具,很多都需要设置环境变量),由于那个控件存在独立运行环境,需要写入系统PATH环境变量。但偏偏这个控件的名字又长的要命。先前有同学告诉我,PATH太长可以使用别名来解决,即创建其它名称的环境变量,并在PATH中使用两个“%”来引用,于是将一部分PATH路径拿出来,新建了一个环境变量并在PATH中引用。

下面先来了解一下什么是dos吧

参考:

数据 ----- 文件、文件夹、音频视频都可以看做数据

再启动Delphi,咦?另一个文件又找不到了。反复检查发现,刚刚建立的环境变量已经起作用,但另外的路径又丢失了。于是打开CMD控制台,输入PATH,才发现,PATH变量的值已经被截断,原来那个使用别名的方法只是治标不治本。单条PATH变量可以插入了,变量值的长度限制还是存在。难道,非要我把每个程序都安装到短文件路径中?

dos

      我们使用计算机接触最频繁的就是DOS。DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”,顾名思义,DOS主要是一种面向磁盘的系统软件,说得简单些,DOS就是人给机器下达命令的集合,是存储在 机器硬件里头的一些命令集,有了DOS,我们就可以更容易理解怎么给机器下命令,不必去深入了解机器的硬件结构,也不必去死记硬背那些枯燥2进制数字的机 器命令,只需通过一些接近于英语的DOS命令,我们就可以轻松地完成绝大多数的日常操作。另外,DOS还能有效地管理在它控制下的各种软硬件资源,对它们 进行合理的调度,所有的软件和硬件都在DOS的监控和管理之下,有条不紊地进行着运转。

------------------------------ 解决方案一


那你不要用它的全路径来创建,用某个文件夹的DirectoryInfo来创建不就好了
多谢提醒,取得父文件夹路径CreateSubdirectory就可以了。试了好多方法,怎么把这个忘了,汗一下自己。

让我们从BCL中的一个有趣的异常开始今天的话题:[PathTooLongException]: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.我们的客户在bug报告里说: “路径最多只有260个字符? MS搞笑的吧. 把这个限制搞得更长一些!”. 在这里我将会对这些提交bug报告的人(很抱歉你们的bug被关成了”won’t fix”)详细解释这个问题并告诉你们我们对此所作出的努力.让我们先来澄清一些术语:Path: 一个文件的全路径. 比如你又一个文件: c:tempfileA.txt, 那么通常你会叫这个文件fileA.txt, 但它的全路径应该是c:tempfileA.txt.
MAX_PATH: Windows API定义的路径的最大长度, 260个字符.
Long path: 一个长度超过了MAX_PATH的路径.
Long file name: 跟long path还不一样. 这个其实是用来跟短文件名作对比的, 就是以前我们说的那个8.3格式的文件名.
众所周知.NET API是依赖于Windows API的, 从这一点上看, 上面的这个异常就没有什么问题了. 然而Windows API还提供了一个方法来绕过这个MAX_PATH的限制. 如果你在你的文件路径前面加上”\?”的前缀, 然后调用unicode版本的Windows API, 那么你的path的最大长度就可以达到32k了. 也就是说你只要加上前缀”\?”就可以在Windows API中使用long path了.没有人会抱怨32k的长度限制了, 那么是不是就可以说问题解决了呢? 也不完全是. 过去我们不愿意支持long path是有原因的, 而且现在我们还会考虑这些原因. 第一个原因就是安全. 前缀”\?”并不仅仅是打破的long path的限制, 它还能让path在到达文件系统之前只受到Windows API的最小的修正. 这样做的结果就是”\?”规避了Windows API对于path的一系列的标准化的操作: 去掉path后面的空格, 把’.’和’..’扩展为相应的内容, 以及把相对路径转换成全路径等等. 在.Net中的如果用FileIOPermission attribute来保证安全, 我们就不得不使用标准化后的路径. 而不用FileIOPermission就会有安全隐患. 现在我们明白了如果我们用前缀”\?”来解决long path的问题的话, 我们就必须能像Windows API那样把路径标准化.第二个原因是支持long path可能导致的不一致行为. 很多操作文件的Windows API都支持以”\?” 作为前缀的long path, 但仅仅是很多而不是全部. 比如LoadLibrary, 它的功能是将一个module映射到调用者的地址空间, 在文件路径超过MAX_PATH的时候就会失败. 这就意味着你可以调用MoveFile把一个DLL放到一个路径长度超过MAX_PATH的地方, 但是当你想加载这个DLL的时候却失败了. 在Windows API里面有很多这样的例子, 虽然有一些权宜之计, 但都是针对特殊问题的, 没有一个通用的解决方案.另外一个因素, 也是最痛苦的一个, 是Windows Application和Windows shell本身在long path上的兼容性. 因为Windows shell本身只支持长度小于260的路径 (下面会讲到Vista shell弱化了这个限制). 就是说如果.NET支持了long path, 那么你就可以通过你的.NET App创建一些在Explorer或是命令行中不能访问的文件了. J我们已经意识到了260个字符的限制并不是很合理. 我们的客户并不经常碰到这个问题, 但是一旦需要一个超出MAX_PATH的路径, 就会觉得很不方便. 一个权宜之计是P/Invoking Windows API并使用”\?”前缀, 但是这样就不得不写一大坨跟System.IO重复的code. 所以为了解决这个问题, 我们的客户常常会重新设计目录结构, 绞尽脑汁的缩短目录名. 因为这个问题已经逐渐变得普遍, 所以无论是.NET framework还是别的领域, MS都已经开始着手解决这个问题. 实际上在vista中你应该已经可以看到我们为了减少出现MAX_PATH的问题的几率所作出的改动: 很多特定的目录名已经被缩短 (译注: Documents and Settings à Users, 实际上, 在MS有一个专门的alias叫longpath来谈论这个问题), shell还有一个auto-path shrinking的功能, 它会用比较短的别名来表示路径以把那些long path压缩在260个字符以内.

以后一旦提到数据,就是增删改查

偏方医治:

常用命令编辑(在java运行里用到的)

1 dir

无参数:查看当前所在目录的文件和文件夹。

2 cd

cd 目录名:进入特定的目录。

cd 退回到根目录。

cd..退回到上一级目录。

3 md rd

md 目录名:建立特定的文件夹。 (dos下面习惯叫目录,win下面习惯叫文

件夹。)

rd 目录名:删除特定的文件夹。

4 del

del 文件名:删除一个文件。

del *.*:删除当前文件夹下所有文件。

del不能删除文件夹。

5 Set

显示、设置或删除环境变量。如果没有任何参数,set 命令将显示当前环境设置。

6 exit

退出cmd.exe程序或目前

7 Ipconfig

显示所有当前的 TCP/IP 网络配置值、刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。使用不带参数的 ipconfig 可以显示所有适配器的 IP 地址、子网掩码、默认网关。

那么在dos环境下如何运行java呢

首先要学会配置java运行环境

 

打开环境变量对话框

1.首先在我的电脑点击右键,选择属性选项;

2.然后点击高级系统设置,然后弹出系统属性框,在高级选项卡中我们可以看到环境变量按钮;

3.点击环境变量后弹出对话框,一般我们设置的是path或者classpath

 

假设JDK安装于D:javajdk1.5.0_08

开始配置:

1.新建(如有就不用了)JAVA_HOME,变量值为 D:javajdk1.5.0_08

2.PATH 变量值为 %JAVA_HOME%bin;%JAVA_HOME%jrebin 

3.CLASSPATH 变量值为 .;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar (要加.表示当前路径)

 

接下来测试下是否成功配置:

在dos下输入“java -version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功;

 

接下来编译程序

“开始”->;“运行”,键入“cmd”;

首先编好一个.java的文件

下面开始你的第一个java程序吧

澳门新浦京娱乐场网站 1

javac 文件名.java——为了生成.class文件(javac是编译java代码)

java 文件名(这步不要后缀名)(java是运行java程序)

 

但是在一些特殊的情况下我们可能会使用临时的环境变量配置。比方说我们借用别人的计算机时,却不能改动别人的计算机设置,这时你会怎么做?我想最好的办法就是一个移动U盘加临时环境变量配置。

临时环境变量配置可以使用DOS命令,在cmd命令行中输入set,你会看到你的计算机中所有的环境变量,而通过输入set  path可显示出path的所有变量 而设置临时的path环境变量则只需输入: 
  set  path=F:/Demo/java即可,它对计算机系统中的配置没有影响。   

另有输入:
  set path=F:/Demo/java;%path%

  这表示在原有的设置上添加一个路径,对计算机系统中的配置没有影响。

  总结一下就是:

  set 用于查看本机的所有环境变量;
  set 变量名:查看一个具体的环境变量;
  set 变量名=:清空一个环境变量;
  set  变量名=具体值:给指定变量定义具体指;
  set 变量名=具体值;%path%:在原有环境变量基础上添加新值。

  注意:这种配置方式只在当前dos窗口有效,窗口关闭后则配置消失。

  同理可得,classpath环境变量的临时配置也是一样

注:

    Path

Path使得系统可以在任何路径下识别java命令,设为:

%JAVA_HOME%bin;%JAVA_HOME%jrebin

 CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:

.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar (要加.表示当前路径)

%JAVA_HOME%就是引用前面指定的JAVA_HOME;

 

澳门新浦京娱乐场网站Dos命令与java运行流程,环境变量PATH超长问题。    javac

javac 是java语言编程编译器。javac工具读由java语言编写的类和接口的定义,并将它们编译成字节代码的class文件。javac 可以隐式编译一些没有在命令行中提及的源文件。

   

    jdk和jre的区别
(收藏的博客,借鉴一下)
(收藏的博客,借鉴一下)
JRE(Java Runtime Enviroment)是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。

JDK(Java Development Kit)又称J2SDK(Java2 Software Development Kit),是Java开发工具包,它提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)和运行环境(提供了JVM和Runtime辅助包,用于解析class文件使其得到运行)。如果你下载并安装了JDK,那么你不仅可以开发Java程序,也同时拥有了运行Java程序的平台。JDK是整个Java的核心,包括了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库(rt.jar)。
总:JRE主要包含:java类库的class文件(都在lib目录下打包成了jar)和虚拟机(jvm.dll);JDK主要包含:java类库的class文件(都在lib目录下打包成了jar)并自带一个JRE。

   简述JAVA_HOME,path和classpath环境变量的作用
(收藏的博客,借鉴一下)
1. PATH环境变量。作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。
2. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。
新版的软件,classpath好像都没有什么用了,因为在安装的时候已经选了JDK而且可以添加

3. JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。

 

 

 

------------------------------ 解决方案二

上层逻辑控制和事务处理使用 Java 开发,而底层核心功能使用 C/C 实现,这已经成为一种较为通用的开发模式。但由于 Windows 操作系统的默认设置,上述语言在对长路径名(>260 字符)文件的处理时会遇到一些问题。本文列出了不同的 JDK 版本在 Windows 操作系统上对于长路径名文件处理的区别,给出了两种支持长路径名文件的 C/C 编程方法,同时还指出了从 JDK 5.0 开始才完全支持长路径名。使用本文的方法,可以解决在 Windows 平台上标准 API 函数对长路径名文件支持的局限性问题,给开发测试工作带来方便。

常用Dos命令:

A、进入盘符 ----- 盘符: -----> 盘符大小写无所谓

B、返回上一级 --- cd..

C、返回根目录 --- cd

D、进入文件路径方式 -----> cd 文件路径

E、cls -----淸屏

文件夹

增 -----> md 文件夹名称

删 -----> rd 文件夹 ----> 如果文件夹下有文件 rd /s 删除所有

rd /s /q 文件夹 ----> 安静模式删除所有

改 -----> ren 文件夹原名 文件夹新名

查 -----> cd 进文件夹 ----> dir

文件

增 -----> notepad ----> 输入内容 ----> 另存为

删 -----> del 文件名

改 -----> notepad 文件名

查 -----> dir -----> 查文件夹下的文件

当我无奈中想到重装程序到短文件路径时,突然拉亮了另一盏灯。对,DOS8.3格式的短文件名!(哈哈,当时我叫出来的第一句就是,你太有才了…)。所谓DOS8.3格式短文件名就是文件或目录名分8字节主文件名和一个点加3字节的扩展名,在非DOS时代的系统,虽然文件名可以超出这个限制,但仍然可以使用该规则来操作文件名,即使用我们经常见到的“~n”方式。

Windows 对长路径名文件的限制

众所周知,微软的文件系统经历了 fat->fat32->NTFS 的技术变革。且不论安全和文件组织方式上的革新,单就文件名而言,已经从古老的 DOS 8.3 文件格式(仅支持最长 8 个字符的文件名和 3 个字符的后缀名)转变为可以支持长达 255 个字符的文件名。而对于路径长度,NTFS 也已经支持长达 32768 个字符的路径名。

然而,Windows 操作系统并没有完全放开路径名长度的限制,在 windef.h 中,可以找到如下的宏:

#define MAX_PATH 260

事实上,所有的 Windows API 都遵循这个限制。因此,每当我们试图更改某一文件的文件名时,当输入的文件名长度 ( 全路径 ) 到达一定限度时,虽然文件名本身还未达到 255 个字符的限制,但是任何输入将不再被接受,这其实正是由于操作系统不允许 260 个字符(byte)的文件全路径。

实际应用中,这种 260 个字符的全路径的限制给应用开发带来了很大的不便。试想如下应用:我们希望给应用服务器增加一个本地 cache 的功能,该功能可以把远程服务器上的文件留下一个本地的副本。一个合理的实现可以把 url 映射为文件名,当 url 很长时,cache 文件的长度也会很长。当文件名长度超过 255,我们可以把映射文件名的前 255 个字符作为目录名称。但是,我们仍然无法解决 260 个字符的全路径限制。另外,如果一个应用软件的目录结构过深,很容易出现某些文件名长度(含路径)超过 260 个字符,并因此造成安装或删除的失败。总而言之,该限制给我们的开发测试工作带来了诸多不便。

对于一些网络服务器,往往需要将 Java 代码用于上层逻辑控制 / 事务处理的开发,同时将 C/C 用于底层核心功能的实现。为此,我们研究了这两种程序语言对长路径名文件的支持情况。其中,对于 Java,比较了两个常用版本 1.4 和 5.0 对长路径支持的差异性;对于 C/C 语言的局限性,提出了我们的解决方法。

实验环境

 

操作系统: Windows xp

文件系统: NTFS 文件系统

Java 编译环境:JDK 1.4.2 以及 JDK 5.0

C 编译环境: VC.net

命令行输入内容:

A、判断是不是命令,是执行 不是执行B

B、判断是不是当前路径下的可执行程序,是就执行 不是执行C

C、查找PATH,看PATH存储的路径下是否有此程序,有就运行 没有执行D

D、抛出错误

那么,既然很多文件夹名称都那样的长(比如MS SQLSERVER的Microsoft SQL Server文件夹),那使用DOS8.3格式的短文件名来压缩路径,不就可以起到缩短PATH路径的作用了?

在 Java 中使用长路径名文件

Java 语言并不需要对长路径名文件进行特殊的处理,就可以支持长路径名文件的创建、读写和删除操作等基本操作。但是,JDK 1.4.2 和 JDK 5.0 在长路径的支持上是不同的,JDK 1.4.2 并不是完全支持所有的长路径名文件操作,比如访问文件属性的操作是不支持的。我们设计了如下代码来验证 JDK 1.4.2 和 JDK 5.0 对长路径名文件支持的区别。

清单 1. 对长路径名文件操作的 Java 实验代码:

try {
    String fileName = "E:\VerylongpathVerylongpathVerylongpath
        VerylongpathVerylongpathVerylongpathVerylongpath
        VerylongpathVerylongpathVerylongpathVerylongpath\
    VerylongpathVerylongpathVerylongpathVery
        longpathVerylongpathVerylongpathVerylongpath
    VerylongpathVerylongpathVerylongpathVerylongpa
        th.txt";
    System.out.println("Filename: "   fileName);
    System.out.println("File path length: "   fileName.length());
    String renameFileName = "E:\VerylongpathVerylongpathVerylongpath
        VerylongpathVerylongpathVerylongpathVerylongpath
        VerylongpathVerylongpathVerylongpathVerylongpath\Short.txt";

    //Create the file.
    File file = new File(fileName);
    if (!file.exists())
        file.createNewFile();
    if (file.exists())
        System.out.println("The file exists!");
    if (file.canRead())
        System.out.println("The file can be read!");
    if (file.canWrite())
        System.out.println("The file can be written!");
    if (file.isFile())
        System.out.println("It's a file!");

    //Write to the created file.
    FileOutputStream out = new FileOutputStream(file);
    PrintStream p = new PrintStream(out);
    p.println("This is only a test!");
    p.close();

    //Read the information from that file.
    BufferedReader br = new BufferedReader(new FileReader(file));
    StringBuffer sb = new StringBuffer();
    while (true) {
        String sl = br.readLine();
        if (sl == null) {
            break;
        } else {
            sb.append(sl   "n");
        }
    }
    br.close();
    System.out.println("The content in the file:");
    System.out.print("t"   sb.toString());

    //File rename
    File newfile = new File(renameFileName);
    if (newfile.exists())
        System.out.println(renameFileName   "exsited");
    else {
        if (file.renameTo(newfile)){
            System.out.println("Rename sucessful!");
        } else {
            System.out.println("Rename failed!");
        }   
    }

    //delete file
    if (file.delete())
        System.out.println("The old file deleted!");
    if (newfile.delete())
        System.out.println("The renamed file deleted!");
    }  catch (IOException e) {
        //Error happened
        e.printStackTrace();
        System.out.println("Error occurs in writing to the file.");
    }
}

清单 2. 使用jdk1.42 的结果

Filename: E:VerylongpathVerylongpathVerylongpath
VerylongpathVerylongpathVerylongpathVerylongpathVer
ylongpathVerylongpathVerylongpathVerylongpath
VerylongpathVerylongpathVerylongpathVerylong
pathVerylongpathVerylongpathVerylongpath
VerylongpathVerylongpathVerylongpathVerylongpath.t
xt


File path length: 272


The content in the file:


This is only a test!


Rename failed!

The old file deleted!

从实验结果来看,JDK 1.4.2 得到了该长路径名文件的内容,因此,对于该长路径名文件的创建以及读写操作都是支持的。但是对比下文使用 JDK 5.0 的结果,可以看到,所有对于文件属性的判断都是错误的,同时,重命名的操作也无法实现。更为重要的是,JDK 1.4.2 存在着一个很致命的问题,即方法 File.exists() 是失效的。通常,在删除文件前,需要调用该方法判断文件是否存在,对于 JDK 1.4.2,如果直接去删除一个不知道是否存在的文件,就会存在比较大的风险。因此,JDK 1.4.2 在 Windows 平台对长路径名文件的操作只是有限的支持,使用的时候,一定要注意。

清单 3. 使用jdk5.0 的结果

Filename: E:VerylongpathVerylongpathVerylongpath
VerylongpathVerylongpathVerylongpathVerylongpathVer
ylongpathVerylongpathVerylongpathVerylongpath
VerylongpathVerylongpathVerylongpathVerylong
pathVerylongpathVerylongpathVerylongpath
VerylongpathVerylongpathVerylongpathVerylongpath.t
xt
File path length: 272
The file exists!
The file can be read!
The file can be written!
It's a file!
The content in the file:
    This is only a test!
Rename sucessful!
The renamed file deleted!

从实验中可以清楚的看到,在版本 JDK 5.0 中,所有的文件操作(新建、读写、属性操作、重命名、删除等)都能够得到正确的处理。使用 JDK 5.0 就可以完全不用担心长路径名文件的使用问题。

应用程序命令行启动:

A、进入所在路径,输入程序名称

B、格式:"程序路径/程序名称"

需求:让自安装的程序在任意路径下启动

方案:配置PATH ----- 程序的安装路径

PATH ----> 我的电脑 --右击---> 属性 -----> 高级系统设置 -----> 环境变量 ------> 系统变量 PATH

格式:不同的路径使用;隔开 -----> 注意:; 是英文的

查找顺序:从前向后

键盘使用

ctrl A ---- 选择全部

ctrl S ---- 保存 ----- 要求:桥一行ctrl s 一下

ctrl C ---- 复制

ctrl V ---- 粘贴

ctrl X ---- 剪切

ctrl Z ---- 撤销

但是,我们又如何获取一个文件或目录的短文件名呢?其实系统已经给我们提供了这个工具,很简单,在CMD控制台中运行 dir /n /x,那么当前目录下的文件名就以长/短两种方式显示出来,接下来就不用我说了吧…

在 C/C 中使用长路径名文件

相对于 JDK 5.0 不需要任何改动就可以支持长路径名文件,在 C/C 中使用超过 260 个字符的路径长度的文件,会复杂得多。下面介绍两种支持长路径名文件的方法。

----------------下载安装Java开发环境----------

1、Java简介

A、开源

B、跨平台

JavaONE体系: ONE -----> Open Net Environment ----- 开放的网络环境

JavaSE ------> 桌面程序开发 ---- CS -------------------核心 -----> Java的核心语法

JavaEE ------> 企业分布式系统 -- BS (成熟,就业最火)

JavaME ------> 移动端开发 ------> 没必要和android无关

Android

Hadoop -----> 趋势

2、JDK下载、安装、卸载

JDK ----- Java Development kit ----> java集成开发工具包

JDK ----- jdk-7u45-windows-i586.1454527248

安装版 ---- 安装 ------ 会在注册表注册 ----> 卸载时不能直接删除 ----> 专业工具卸载(清注册表)

绿色版 ---- 免安装 ---- 解压缩即可用 ------> 删除直接删掉安装路径

安装:

A、安装的软件自己归类,不要使用默认的 -----> 找的着

B、安装路径不要出现空格和中文字符

1、安装路径自定义

2、JRE可安装也可以不安装,建议安装

3、JDK中程序调用

A、JDKbin目录下有应用程序,但是双击不可用

B、DOS下可以使用进入安装路径,程序名的方式调用

使用双引号包裹程序安装路径程序名的方式调用

JRE ------> Java Runtime Environment ---- java的运行环境

开发环境不同于运行环境:

开发 -----> 编写源代码,运行程序

运行 -----> 运行程序

JDK内为什么有JRE ----->

1、开发完的程序要测试运行,那么运行就需要运行环境

澳门新浦京娱乐场网站Dos命令与java运行流程,环境变量PATH超长问题。2、开发中使用一些程序,本身也是java编写的,所以运行需要JRE

后记:

方法一:使用 Unicode 版本的 API

从微软官方网站 Path Field Limits.aspx),可以查到,使用 Unicode 版本的 API,对于使用 NTFS 文件系统的 Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional 和 Windows Server 2003 操作系统,可以支持 32768 字节的文件路径长度。同时,路径名必须使用 \? 的前缀。依照这个思路,我们设计了实验。

清单 4. 对长路径名文件操作的 C 的示例代码(Unicode API)

{
FILE *from, *to;
char filename[1024];
strcpy(filename,"\\?\E:\VerylongpathVerylongpath
VerylongpathVerylongpathVerylongpathV
erylongpathVerylongpathVerylongpathVerylongpathVerylongpathVerylongpath
\VerylongpathVeryl
ongpathVerylongpathVerylongpathVerylongpathVerylongpath
VerylongpathVerylongpathVerylongpat
hVerylongpathVerylongpath.txt");
int iL1=MultiByteToWideChar(CP_ACP, 0, filename,
 strlen(filename), NULL, 0); 
WCHAR* wfilename=new WCHAR[iL1 1]; 
wfilename[iL1] = '';
int iL2=MultiByteToWideChar(CP_ACP, 0, filename, 
strlen(filename), wfilename, iL1); 
from = _wfopen( wfilename ,L"rb");
to = fopen(".\longpath.txt", "wb");
if((from ==NULL)||(to==NULL))
    return -1;
char buffer[1024];
int count = 0;
while ( (count = fread(buffer, sizeof(char), 1024, from)) != 0)
    fwrite( buffer, sizeof(char), count, to);
delete []wfilename;
fclose (from); fclose(to);
}

使用如上的方法,我们可以拷贝某长路径名的文件到当前文件夹中。从试验结果看,该方法是有效的。但是,由于该方法要求系统使用 Unicode 的 API,同时需要更改路径名称以及编码方式。因此,对于一个已经存在的系统,由于需要改变所有文件操作相关的 API,因此改动将会很大。

JavaPATH优化:

存在的问题:当JDK安装路径更改时,要对应的更改PATH设置,PATH的内容不要轻易改变,频繁的操作PATH可能有安全隐患

进行  优化:JDK的安装路径单独提取

A、创建新变量 JAVA_HOME ----> JDK的安装路径

B、配置PATH ----> %JAVA_HOME%bin

优     点:JDK安装路径改变时,直接更改JAVA_HOME,无需直接操作PATH ----> 安全

注     意:JAVA_HOME写法 ---- 大小写无所谓

强制要求使用此名称,包括格式 -----

现在需要PATH环境变量的程序越来越多,PATH的空间也越来越小,真不知道此问题要何时才能解决。刚刚我在Microsoft的网站上找到了一个关于PATH长度限制补丁的说明,但由于整篇指东言西的描述让人匪夷所思,大概是有一个可以把PATH扩展到2046字节的补丁已经发出来,可是始终没找到下载地址。本文叙述的方法也仅仅是治标不治本,但在不限制长度PATH环境变量出现之前,其不失为一种这种方法。

方法二:创建 8.3 格式的短路径名

对于每一个长路径名,都有一个 8.3 格式(8 个字符的文件名和 3 个字符的后缀名)的短路径名与其相对应,任意的文件夹或者文件名都可以映射成一个 8 字符的文件名(A~B),其中 A 是文件名前缀,B 是表示字母序的顺序。操作系统可以保证这样的映射是一对一的,只要使用 GetShortPathName() 将长路径名转成相应的短路径名,就可以进行对该文件进行普通的文件操作。同时,在任何时候都可以用函数 GetLongPathName() 把 8.3 格式的短路径名恢复成初始的长路径名。

如 GetShortPathName Function 叙述,我们需要一个 Unicode 版本的 API,同时在路径名前加上 \? 的前缀,才能实现长短路径名间的切换。但从实验来看,即使不使用 Unicode 的 API,依然可以实现上述功能。

清单 5. 对长路径名文件操作的 c 的示例代码(ShortPath)

{
char pathName [1024];
strcpy(pathName,"\\?\E:\VerylongpathVerylongpathVerylongpath
VerylongpathVerylongpathV
erylongpathVerylongpathVerylongpathVerylongpathVerylongpathVerylongpath
\VerylongpathVeryl
ongpathVerylongpathVerylongpathVerylongpathVerylongpathVerylongpath
VerylongpathVerylongpat
hVerylongpathVerylongpath.txt");

const int MaxPathLength = 2048;
char shortPath[MaxPathLength];

if (strlen(pathName) >= MAX_PATH)
{
    char prePath[] = "\\?\";
    if (strlen(pathName) >= MaxPathLength - strlen(pathName))
        return false;

    sprintf(shortPath, "%s%s", prePath, pathName);

    for (int iPathIndex = 0; iPathIndex < strlen(shortPath); iPathIndex  )
        if (shortPath[iPathIndex] == '/')
            shortPath[iPathIndex] = '\';

    int dwlen = GetShortPathName(shortPath, shortPath, MaxPathLength);
    if (dwlen <= 0)
        return false;
}
}

经过上述的代码,超过 MAX_PATH 限制的路径名都可以转变成一个 8.3 格式的短路径名,可以把这个文件名 (shortPath)作为后续文件操作函数的参数。这种情况下,对于该文件的所有操作都可以被支持了。我们用这种缩短路径名长度的方式解决了长路径名文件的操作问题。

----------------第一个Java程序----------------

1、编写第一个Java应用程序

A、JDK

B、开发工具 ----- 记事本即可

准备工作:

A、安装了JDK

记事本

javac java 可以在任意路径运行

B、显示文件后缀名

组织 ----> 文件夹和搜索选项 ----> 查看 ---->隐藏文件类型的扩展名不勾选

2、编译运行Java程序

编码:

A、新建文本文档,HelloWorld.java

B、编写源代码

C、命令行进入源代码的路径

D、javac HelloWorld.java -----> 生成一个class 文件

E、java HelloWorld

3、常见错误总结

常见问题:

1、文件扩展名可见

2、大小写 ---- Java严格区分大小写

3、标点 ---- 英文标点

4、{} () 成对出现

5、javac ----- java出问题 -----> main

6、Hello.java ----> HelloWorld.class

javac 阶段与文件名一致

java 阶段与class文件名一致

结束语

本文首先列出了不同的 JDK 版本在 Windows 操作系统上对于长路径名文件处理的区别,同时指出了 JDK 5.0 开始才完全支持长路径名;在第二部分中给出了两种支持长路径名文件的 C/C 编程方法。使用上文中的任一方法,我们都可以实现对长路径名文件的操作,这将在很大程度上方便我们的开发工作,解决在 Windows 平台上标准 API 函数对长路径名文件支持的局限性问题。

---------------开发环境设置优化--------------

1、DOS下命令运行

2、PATH的作用

3、配置PATH

4、配置ClassPath ----- 类文件路径

需求:任意路径下都可以运行class文件

classpath作用:查找class文件的存储路径

没有查找当前,直接查找环境变量中的classpath

注         意:A、classpath查找时,不会查找当前

B、classPath配置以 .; 开始

C、JDK升级后classpath可以不配置了

----------------掌握Java程序的开发运行流程----

1、Java的开发运行流程

A、编写.java文件 ----> 源代码

B、javac XXX.java ----> 编译java源代码

C、生成 XXX.class文件  ----> 字节码文件

D、java XXX ------> 运行class文件

javac.exe -----> 编辑器

java.exe ------> 执行器

项目上线:.java ----> .class 过程,客户不需要执行

客户只需要执行.class文件即可

2、JAVA语言既是编译又是解释型的特点

Java没有设计成编译型语言,因为编译型语言效率高,但可移植性差

Java也没有设计成纯解释性的语言,因为解释型效率太低

折中方案:既编译又解释

编译成class文件,解释class文件 ----- (过渡)

JVM Java虚拟机:

java是跨平台的,Java虚拟机也是跨平台的吗?

java是通过虚拟机实现跨平台的,他为不同平台提供了不同的虚拟机

----------------掌握Java相关概念--------------

1、JDK

-----> 开发者用

2、JRE

-----> 客户用

3、JVM

-----> Java虚拟机

学习:

1、Java的语法

2、调用Java已经实现的功能

JVM -----> 《Java语法规范》《JVM规范》

----------------注释--------------------------

注释:

A、由于计算机语言只是类人话,所以易读性差

B、使用自然语言对程序进行说明

C、使用标记告知编译器哪些是描述语言,哪些是代码

1、注释格式

/**    */ ------ 文档注释 ------> 注释多行,有特殊作用

/*     */ ------ 多行注释 ------> 注释多行

//       ------ 单行注释 ------> 注释单行 ----- //后的所有数据视为注释,非功能代码

注释是给开发人员读的,编译器会将注释过滤掉

2、注释意义

规范:

注释量占到代码总量的 30% --- 50%

提高代码的易读性和以维护性

3、注释嵌套使用注意

A、多行注释可以用于单行局部注释

B、多行注释和文档注释不可以嵌套使用

----------------EditPlus----------------------

1、高级记事本,开发前期使用

2、注册 -----

3、更改配置 ----- 不生成备份

工具--->配置自定义工具 ---> 文件 -----> 去掉保存文件时产生备份的勾

----------------关键字、标识符----------------

EditPlus这种高级记事本,演示java源码时,颜色不一样:

1、关键字

一些在Java中被赋予了特殊含义的单词 ----- 不可以随意使用

class public static void

面试题:goto const 是关键字吗?

A、是关键字

B、是保留关键字

没有具体的语法应用,以后随着JDK升级,可能使用

2、标识符

自定义的一些单词

类名、args main out println

A、语法规则:

1、标识符不可以使用关键字

2、标志符不可以数字开头

3、标识符不可以使用特殊字符 _和 $ 除外

B、软性非硬性

业界默认规范:

0、命名要有意义

1、包名定义是公司域名反写 ----- com.itcast.XXX ----> XXX包名的描述信息

2、包名必须都是小写字母

3、类名首字母大写

4、方法名和变量名:驼峰式命名法

如果一个单词:首字母小写 var

如果多个单词:首字母小写,其余单词的首字母大写 如myFirstVar

5、常量命名:

单词所有字母大写

如果多个单词组成,单词之间使用_连接

自定义的:

遵守上述业界默认的规范

本文由澳门新浦京娱乐场网站发布于澳门新浦京娱乐场网站,转载请注明出处:澳门新浦京娱乐场网站Dos命令与java运行流程,环