「java命令中的目录」java目录操作
今天给各位分享java命令中的目录的知识,其中也会对java目录操作进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java 命令行如何不进入文件目录编译 *.java 和运行 *.class ?
- 2、JAVA中绝对路径和目录有什么区别?
- 3、;编译的时候先到Java文件所在的目录,然后再使用javac命令。 ? 怎么做
- 4、linux下如何知道JAVA_HOME的目录在哪里?什么命令?
- 5、如何用javac命令编译一个目录以及子目录下所有的java文件呢?
java 命令行如何不进入文件目录编译 *.java 和运行 *.class ?
首先我觉得应该分析下楼主的提问。以下讨论都在windows系统下进行,因为如果是Linux系统实际上是没有后缀名的概念的(Linux下的后缀只是方便人看,系统是不认的,所以可以随便改的),也就没有楼主说的.java和 .class这种说法了。
那么我们一般的windows系统都会有多个分区(A/B/C/D....盘),在不同的目录下自然可以创建同名的文件,比如每个盘下面都创建一个Test.java,那么如果此时在任意目录下执行javac Test.java命令,很显然系统不可能知道你想要编译的到底是哪一个Test.java文件,所以肯定是不行的。于是windows命令行默认你需要操作的文件在当前目录下。也就是楼主说的进入到文件所在目录中,然后执行javac Test.java命令。
但是要想进入文件所在目录是比较麻烦的,因为cmd打开默认路径在C盘下,而我们的文件一般不会放在C盘下,所以我们一般至少需要两步操作才能将路径修改为我们想要的路径,比如我在H盘的Test文件夹下创建了Test.java文件,现在我想编译它:
完成了上述两步之后才能进行我们真正的操作,挺麻烦的,如果路径很长就更加费劲了。
基于上述理解,我认为楼主的问题应该翻译为怎样更加简单的直接编译.java文件和运行.class文件。
不先进入文件所在目录直接编译也不是不行,但是由于前面阐述的原因(会有同名文件导致歧义的问题),那就只能指定文件所在路径了,如下:
文件名前面加路径的方式可以编译,但是不能运行,因为java命令认为后面跟的东西就是类的名字,也就是认为类的名字是"h:/Test/Test"这个整体了,这自然是不行的。那么是否能直接java Test命令呢,答案还是不行,因为默认只会操作当前目录中的文件,这里也就是C:\Users\DELL路径下的文件,自然不存在Test.class文件,所以运行时还是要进入到目录中。这种方式明显还不如第一种。
重点*****楼主想要的方式******
下面是最方便的一种方式,那就是直接在文件所在位置打开命令行,这样命令行目录位置直接就跟文件所在位置一致,也就不需要在输入进入目录的命令了。如下所示:
回车之后可以看到直接打开了cmd界面,此时直接就在文件所在路径下,这样就可以省略进入目录的步骤了。如下所示:
综上,想要操作文件必须要指定路径,这是不能省略的,原因也说了。所不同的只是指定的方式简单还是复杂而已。
JAVA中绝对路径和目录有什么区别?
按照jdk Doc上的说法”绝对路径名是完整的路径名,不需要任何其他信息就可以定位自身表示的文件。相反,相对路径名必须使用来自其他路径名的信息进行解释。默认情况下,java.io 包中的类总是根据当前用户目录来分析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录.”
相对路径顾名思义,相对于某个路径,那么究竟相对于什么路径我们必须弄明白.按照上面jdk文档上讲的这个路径是”当前用户目录”也就是”java虚拟机的调用目录”.更明白的说这个路径其实是我们在哪里调用jvm的路径.举个例子:
假设有一java源文件Example.java在d盘根目录下,该文件不含package信息.我们进入命令行窗口,然后使用”d:”命令切换到d盘根目录下,然后用”javac Example.java”来编译此文件,编译无错后,会在d盘根目录下自动生成”Example.class”文件.我们在调用”java Example”来运行该程序.此时我们已经启动了一个jvm,这个jvm是在d盘根目录下被启动的,所以此jvm所加载的程序中File类的相对路径也就是相对这个路径的,即d盘根目录:D:/.同时” 当前用户目录”也是D:/.在System.getProperty(“user.dir”);系统变量”user.dir”存放的也是这个值.
我们可以多做几次试验,把”Example.class”移动到不同路径下,同时在那些路径下,执行”java Example”命令启动jvm,我们会发现这个”当前用户目录”是不断变化的,它的路径始终和我们在哪启动jvm的路径是一致的.
搞清了这些,我们可以使用相对路径来创建文件,例如:
File file = new File(“a.txt”);
File.createNewFile();
假设jvm是在”D:/”下启动的,那么a.txt就会生成在D:/a.txt;
此外,这个参数还可以使用一些常用的路径表示方法,例如”.”或”./”代表当前目录,这个目录也就是jvm启动路径.所以如下代码能得到当前目录完整路径:
File f = new File(“.”);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);//D:/
最后要说说在eclipse中的情况:
Eclipse中启动jvm都是在项目根路径上启动的.比如有个项目名为blog,其完整路径为:D:/work/IDE/workspace/blog.那么这个路径就是jvm的启动路径了.所以以上代码如果在eclipse里运行,则输出结果为” D:/work/IDE/workspace/blog.”
Tomcat中的情况.
如果在tomcat中运行web应用,此时,如果我们在某个类中使用如下代码:
File f = new File(“.”);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);
那么输出的将是tomcat下的bin目录.我的机器就是” D:/work/server/jakarta-tomcat-5.0.28/bin/.”,由此可以看出tomcat服务器是在bin目录下启动jvm的.其实是在bin目录下的” catalina.bat”文件中启动jvm的.
;编译的时候先到Java文件所在的目录,然后再使用javac命令。 ? 怎么做
看看下面的解释
一、javac命令
javac 用于编译Java文件,格式为:
java [options] [sourcefiles] [@files]
其中:
options:命令行选项;
sourcefiles:一个或多个要编译的源文件;
@files:一个或多个对源文件进行列表的文件,有时候要编译的文件很多,一个个敲命令会显得很长,也不方便修改,可以把要编译的源文件列在文件中,在文件名前加@,这样就可以对多个文件进行编译,对编译一个工程很有用,方便,省事。
有几个比较重要的选项:
-d 用于指定编译成的class文件的存放位置,缺省情况下不指定class文件的存放目录,编译的class文件将和源文件在同一目录下;
-classpath 可以简写成-cp,用于搜索编译所需的class文件,指出编译所用到的class文件的位置,如jar、zip或者其他包含class文件的目录,指定该选项会覆盖CLASSPATH的设定;
-sourcepath用于搜索编译所需的源文件(即java文件),指定要搜索的源文件的位置,如jar、zip或其他包含java文件的目录;
需要注意windows下和linux下文件路径分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的区别:
windows下文件路径分隔符用 \ ,文件列表分隔符用分号 ;
linux下文件路径分隔符用 / ,文件列表分隔符用冒号 :
二、java命令
java 用于执行程序,格式如下:
java [options] classfile
options:命令行选项,一般用于 -classpath 指定要执行的文件所在的位置以及需要用到的类路径,包括jar、zip和class文件目录,会覆盖CLASSPATH的设定
linux下如何知道JAVA_HOME的目录在哪里?什么命令?
linux下要知道JAVA_HOME的目录可以使用 echo $JAVA_HOME命令。
linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的,例如:
echo $JAVA_HOME
/user/local/jdk1.6.0_25
如果正确配置了JAVA_HOME的环境变量,则使用echo $JAVA_HOME就可以输出其目录位置。
扩展资料
echo命令介绍:
1、功能说明:显示文字。
2、语 法:echo [-ne][字符串]或 echo [--help][--version]
3、补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
4、参数:
-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
–help 显示帮助
–version 显示版本信息
如何用javac命令编译一个目录以及子目录下所有的java文件呢?
你好!
这个太简单了,先转到你要编译的java文件目录,用
javac
*.java命令执行编译就OK了。
仅代表个人观点,不喜勿喷,谢谢。
关于java命令中的目录和java目录操作的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。