java编译不了testpad,没有eclipse,你该怎么编译部署代码

亲们,有没有想过该问题?

很大一批人一上来直接用诸如eclipse的IDE进行开发,他们往往专注于代码,但是忽略了细节,我很庆幸我一开始是用notepad来编写java代码,然后用命令行来编译java文件

我们先来说些关于eclipse的那些事

一、

1.eclipse中有workspace的概念,他是一系列eclipse project的集合,说白了就是一个目录,但是下面有一个名为.metadata的目录,这个目录是eclipse自己建立的,里面有一些对该workspace的一些配置,不同的workspace可以有不同的配置,这就是为什么你转到新的workspace后,你的字体呀,User Libaray呀,Content Assist呀等等都会没掉,当然我们可以使新的workspace的这些配置和已有的配置一样,做法如下:

在你已有的eclipse中:右击-export-General-Preferences,然后选择存放的位置,这样就会导出一个epf文件,这个文件就包含了你这个工作空间的配置,然后用eclipse切换到新的空间,右击-import-General-Preferences,选择刚刚导出的文件然后finish就好,这时你就会发现一切都转到了你熟悉的那个界面

2.我们再来看看eclipse自动生成的其他文件,在你新建的每个项目的目录下都有一个.settings目录,里面都是一些对该项目的配置,比如你的文件编码,你的jdk编译版本之类的,除了这个目录,还有.classpath和.project这2个文件,.project文件我们无需关注,对于.classpath文件,你可以用notepad++之类的工具打开,你会发现它其实是xml格式的(eclipse的大多数配置文件都是xml格式的)

它里面会有下面的内容

需要注意的是这些都是可以在eclipse中设置的,只不过eclipse会把设置后的内容保存到相应的文本文件中,然后启动的时候进行读取(有的是按需加载),如果你改变了该文件的内容,比如把output设成其他目录,当你在eclipse窗口中refresh或者重启后设置就会生效

二、

1.好了,我们转到正题上,先看下该项目的目录结构:

--.settings

--.classpath

--.project

--src

----com

------my

--------Test.java

------your

--------Person.java

--bin

Test.java有import Person.java

大家也注意到上面的.classpath文件中的配置,eclipse会把src目录设为源代码目录,也就是说该目录下的是java源代码,然后eclipse会把这些源代码自动编译到bin目录下,这些都是eclipse自动完成的,我们会认为这是理所当然的,eclipse帮我们做了太多的事了,那么现在就给你这样一个目录结构,不给你eclipse,你该怎么编译src下的源代码呢?做法如下:

首先切换到和src同级的目录下,然后执行下面的命令

javac -sourcepath src -d bin src/com/my/Test.java

这样就会把编译后的class文件放到bin目录下

如果运行的话执行下面的命令:

java -classpath bin com.my.Test

Test.java中有引用Person这个类,所以我们直接编译Test.java时,会自动寻找依赖关系,并且先编译了Person这个类

2.这个例子中我们没有引用第三方的jar包,如果有的话,又该怎么办,目录结构如下:

--.settings

--.classpath

--.project

--src

----com

------my

--------Test.java

----------fm

------------TestFreemarker.java

------your

--------Person.java

--bin

--lib

----freemarker.jar 编译的话首先同样切换到和src同级的目录下,然后执行以下命令:

javac -encoding utf-8 -sourcepath src -d bin -classpath lib/*.jar src/com/my/fm/TestFreemarker.java

运行的话执行:

java -classpath lib/freemarker.jar;bin com.my.fm.TestFreemarker 所以eclipse无非也是执行上面的类似操作而已

3.如果对于Web项目,一般会有WebContent目录,结构如下:

--.settings

--.classpath

--.project

--src

----com

------my

--------Test.java

------your

--------Person.java

--bin

--WebContent

----META-INF

------MANIFEST.MF

----WEB-INF

------lib

------classes

对于eclipse,在项目上右击-properties-Deployment Assembly

e5dd422554c42e45848cad543e288f4d.png

它的意思是如果部署web项目的话,会把以该项目的名称比如Test在tomcat实际加载的webapp目录下建立同名的目录,并且把/WebContent中内容全部拷过去,并把src下的源代码编译到WEB-INF/classes下

也就是说eclipse的插件帮我们完成了部署中一些操作,如果可以的我们也可以自己进行部署,但是效率太低了

三、

其实我们也可以用ant或者maven来帮助我们自动编译,测试,打包和部署,这些工具可以指定包之间的依赖关系,可以进行更加复杂和灵活的操作,至于why ant,why maven,诸君可以去网上搜到更多的文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值