导航:首页 > 源码编译 > 不同目录java多文件编译

不同目录java多文件编译

发布时间:2023-11-07 22:47:47

‘壹’ 一个文件夹里面有多个java文件如何编译

1,使用doc命令进入到该目录

2,在该目录下输入编译命令javac *.java

3,java 命令运行相应的字节码文件

‘贰’ Java 同一个包在cmd上多文件编译

javac的编译单位其实就是单个的java文件,为了达到同时编译多个java文件的目的,可以将所需编译的java文件路径保存在一个txt中,比如sourcelist.txt,以换行为分隔符(这个过程称为类文件注册)。这些java文件没有彼此联系的必要,它们可以是隶属不同的包、在不同的文件夹下(当然建议包路径相同的java类文件放在同一文件路径下),javac命令只会一行一行地读取其中的记录,作为一个单位进行类编译。
举例说明。假设你的这个包放在src文件夹下,src的父目录为project,sourcelist.txt也事先新建在project文件夹下。首先将这个包中你需要编译的java文件相对于src的路径(如src\com\test\Test.java)注册到sourcelist.txt文件中;接着在project文件夹中新建一个bin文件夹(或者class文件夹,命名随你乐意取),用以编译后class文件的放置(这个配以javac命令中-d选项去理解);如果还有其他类库(如jxl.jar或者mysql.jar),建议在project目录下新建一个lib(同样命名不限)文件夹,然后复制到该文件夹下(配以-classpath选项理解);最后检查上述准备工作都完成,win + R、输入cmd都不用讲,现在在cmd中用cd命令切换到project目录,然后输入命令:
javac -classpath lib/jxl.jar -sourcepath src @sourcelist.txt -d bin
现在就很好理解了。-d选项就是destination的意思,即生成class文件被送到该选项后面的bin文件夹;-classpath就是将你要用到的jar包注册到类加载路径中;-sourcepath就是告诉javac命令去哪里找类文件。
最后呢,为了方便,可以在project文件夹下新建一个bat文件,并输入以下内容:
javac -classpath lib/jxl.jar -sourcepath src @sourcelist.txt -d bin
@pause
这样每次直接点击即可,而你需要编译其他包的或者其他java文件,直接在sourcelist.txt文件中添加或修改。这其实也是一种“弱耦合”、模块化的表现。

‘叁’ java中怎么编译不同文件夹但是相互有关的文件啊

这就是类路径(classpath)问题,楼主肯定还不是很明白包、类路径、import的作用。
简单的说下:
package是用来组织类的,确保类的唯一性;
classpath是提供给javac、java等工具使用的,用来查找加载相关需要的类;
import是用来在类中导入相关类,提供一种简单的书写形式;

如果b.java的package是aa.bb.cc,且编译后的b.class在f:\aa\bb\cc下,那么其classpath就是f:\ ,不在包aa.bb.cc下的其他类引用b.class,如a.java,就要这样aa.bb.cc.b 或 import aa.bb.cc.b 来使用b类,在编译a.java时需要指定类路径f:\ ,javac -cp .;f:\ a.java (其中的 .; 在JDK5+是可选的,它表是的是当前路径) ;
再假设b.java没有package,那么在a.java中使用b类,无需import语句;但classpath就是f:\aa\bb\cc\;这样在编译a.java时指定类路径f:\aa\bb\cc,javac -cp .;f:\aa\bb\cc a.java;

归类就是:如果类指定了package,class文件就必须在package下,而classpath就是根包名所在路径;如上面指定b.java的package是aa.bb.cc,那么b.class必须在aa\bb\cc下,classpath 就是aa目录所在的路径f:\,编译其它使用了b类但不在包aa.bb.cc下的类 就需要告诉编译器b类的classpath ;

‘肆’ 如果一个源文件很多个*.java文件,怎么编译运行啊

什么叫一个源文件很多个*.java文件
1个java文件就是1个源文件,多个java文件就是多个源文件,说法就是错误的
如果要一起编译,就放在一个目录下执行javac
*.java

‘伍’ 如何用java以及javac编译工程

一、javac命令
javac 用于编译Java文件,格式为:
java [options] [sourcefiles] [@files]
其中:
options:命令行选项;
sourcefiles:一个或多个要编译的源文件;
@files:一个或多个对源文件进行列表的文件,有时候要编译的文件很多,一个个敲命令会显得很长,也不方便修改,可以把要编译的源文件列在文件中,在文件名前加@,这样就可以对多个文件进行编译,对编译一个工程很有用,方便,省事。
有几个比较重要的选项:
-d 用于指定编译成的class文件的存放位置,缺省情况下不指定class文件的存放目录,编译的class文件将和源文件在同一目录下;
-classpath 可以简写成-cp,用于搜索编译所需的class文件,指出编译所用到的class文件的位置,如jar、zip或者其他包含class文件的目录,指定该选项会覆盖CLASSPATH的设定;多个路径可用分号“;”分隔,linux系统上用冒号“:”分隔,看具体情况,反正不是冒号“:”,就是分号“;”,报错了改下。
-sourcepath用于搜索编译所需的源文件(即java文件),指定要搜索的源文件的位置,如jar、zip或其他包含java文件的目录;
需要注意windows下和linux下文件路径分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的区别:
windows下文件路径分隔符用 \ ,文件列表分隔符用分号 ;
linux下文件路径分隔符用 / ,文件列表分隔符用冒号 :
二、java命令
java 用于执行程序,格式如下:
java [options] classfile
options:命令行选项,一般用于 -classpath 指定要执行的文件所在的位置以及需要用到的类路径,包括jar、zip和class文件目录,会覆盖CLASSPATH的设定
三、脚本
如果要敲的命令很长,每次要编译运行的时候都要重新敲一遍,这是一件很痛苦的事情,所以用脚本可以大大方便你的工作 量。在linux下用shell脚本,windows下用bat批处理程序。因为是在linux下,我这里只是简单介绍一下shell,关于bat批处理 程序的语法自己网络一下,不难。
1. 开头
linux有很多不同的shell,通常使用bash(bourne again shell),程序必须以下面的行开始:
#!/bin/sh
#!用来告诉系统用后面的参数来执行程序,这里使用的是/bin/sh
要使你的脚本能够执行,还必须让这个文件有可执行权限,使用下面命令更改文件权限:
chmod +x filename
2. 注释
以#开始的句子表示注释,一直到这行结束,多写注释有利于以后重新看的时候知道自己在做什么
3. 变量
shell的脚本的变量都是字符串,不用申明类型,定义的时候直接 变量=值 即可,用到变量的的时候用 $变量 或者 ${变量},echo命令用于打印,举个例子:
#!/bin/sh
# 定义变量words,值为hello world
words="hello world"
# 打印变量words的值
echo $words
4. 命令
shell脚本里面可以直接任意使用linux命令,要用到什么命令直接敲进去即可。记住一些常用的命令:
cd 打开目录
ls -l 显示目录信息
rm -fr 递归删除目录及下面的文件,不提示信息
mkdir 创建目录
pwd 显示当前路径
kill -9 pid 强制杀掉某个进程号的进程
pkill 杀掉某个名字的进程
ps aux 显示运行进程信息
netstat -pan 查看网络端口监听情况

‘陆’ 如何用javac 编译多个目录中的java文件

根据我个人的经验,只要找到包含主函数的那个类进行编译,如果在主函数内有导入其他用户编写的包,会自动进行编译得到.class文件的。你可以试试看。

‘柒’ 如何用JAVAC一次性编译多个包下的JAVA文件

1.利用-cp
cd xxx
dir *.java/s/b > srclist.txt
or dir x:/yyy/zzz/*.java/s/b > srclist.txt
javac -cp .;xxx/yyy/zzz.jar;x/y/z.jar -d classes @srclist.txt

2.直接使用

这个,主要是在做一个独立的Java项目,它不依赖IDE,同时要在别人电脑上编译运行
下面编译运行用到了jar包、properties文件。首先进入项目的根目录下,注意:每一行,表示:DOS系统将执行的指令。
G:
cd testJava
上面,两个命令为模拟,进入项目根目录(具体目录,根据自己程序所在目录)。
javac -classpath .;../previousRecord.properties;../lib/jtds-1.2.5.jar;com/cjb/properities/jdbc.properties com/cjb/jdbc/*.java com/cjb/client/*.java -encoding UTF-8
上面命令,表示:编译com/cjb/jdbc下所有java类和com/cjb/client下所有java类,这些类用到了previousRecord.properties文件(它的路径是相对的)和jtds-1.2.5.jar的文件jar包(它的路径也是相对的),同时用的编码是UTF-8。
java -Xms64m -Xmx512m -cp .;../previousRecord.properties;../lib/jtds-1.2.5.jar;com/cjb/properities/jdbc.properties com/cjb/client/MailDispatcherOperation
上面命令,表示:执行com/cjb/client下的MailDispatcherOperation.class(它里面有Main函数)。

阅读全文

与不同目录java多文件编译相关的资料

热点内容
给编译原理论文起个题目 浏览:141
手机app底色变红了该怎么办 浏览:522
flash命令行 浏览:666
反诈骗app怎么找回密码 浏览:631
java方法和函数 浏览:420
程序员衣服穿反 浏览:959
java多类继承 浏览:159
怎么用多玩我的世界连接服务器地址 浏览:483
为什么华为手机比安卓流畅 浏览:177
javamap多线程 浏览:228
卡西欧app怎么改时间 浏览:843
jquery压缩图片 浏览:970
用纸筒做解压东西 浏览:238
神奇宝贝服务器如何tp 浏览:244
云服务器支持退货吗 浏览:277
贷款等额本息算法 浏览:190
根服务器地址配置 浏览:501
单片机是软件还是硬件 浏览:624
vivo手机怎么看编译编号 浏览:320
塑钢扣条算法 浏览:301