本文吐槽!

如果我们创建两个Java项目。一个叫StatsReader。把数据从网上下载到本地数据库里。一个叫StatsViewer。把数据从数据库里拿出来呈现给用户。这两个项目都要用同一个外部类库mysql-connector-java-5.0.8-bin.jar。

Eclipse能够创建一个工作集。内含多个Java项目,但工作集仅仅是一个概念,与项目的实际存储位置无关。

可是我们能够把两个项目放在同一个文件夹里,比方D:\Source Code\NBA\StatsReader和D:\Source Code\NBA\StatsViewer。

如果有个需求,要求reader读完数据后自己主动打开viewer。我们能够用改动.project文件添加链接目录的方式把StatsReader的编译位置从D:\Source Code\NBA\StatsReade\bin转移到D:\Source Code\NBA\bin,即..\bin。相同StatsViewer也这样转移。

Java编译烂就烂在在文件级别上源码与二进制一一相应,我有a.java。它就编出a.class。所以,万一StatsReader和StatsReader有某个文件重名就会出错。

我从C#出身的,在Java里我习惯把包括main函数的文件起名为Program.java,所以有StatsReader/Program.java和StatsViewer/Program.java。编译后bin里仅仅会有一个Program.class,我也不知道是reader的还是viewer的!

那行吧。幸亏我还能把java程序打包成jar。

比方我reader先调试好了,打包成StatsReader.jar,放到bin里。然后開始调试viewer。

由于reader的program.class在bin里面,我在eclipse的viewer项目里点击执行。实际上执行的还是reader!

我要又一次编译reader,不行的!

说要清理项目状态然后编译。清理项目状态事实上就把bin里的全部文件都清除了,我刚打包好的StatsReader.jar没了!

Visual Studio支持就好多了!VS创建一个项目,这个项目就自己主动处在一个解决方式里,从一開始就告诉你一个解决方式能够包括多个项目。而不特别去查的话不会知道Eclipse有工作集这个玩意儿。

VS能够强制又一次编译项目。无论代码文件有没有改过,它都给你编译一遍。VS也能够清理解决方式,就跟Eclipse清理项目状态差点儿相同。但VS它不是一股脑地整个删除bin目录里的文件,它仅仅会删除它生成的文件。

像我刚才描写叙述的两个项目,在VS里面我想就非常好做。结构清晰。管理简单。

有人不服气了,说Eclipse有Ant自己主动构建大神,还有maven大神、Gradle大神,但我这仅仅是简单的需求就要动用到还有一项专门技术?Eclipse里菜单是有“Ant自己主动构建”之类的选项,但我怎么知道这是什么意思?

我也不知道Eclipse能不能执行“编译前动作”“编译后动作”,这似乎是ant负责的事。能不能编译到D:\Source Code\NBA\StatsReade\bin。打包成jar放到D:\Source Code\NBA\bin,执行D:\Source Code\NBA\bin的jar?看起来非得搞懂自己主动构建才行!

VS编译前编译后动作就非常明显,在项目属性窗体里,点几下就能看到。虽然编译前编译后动作属于自己主动构建领域,但VS不引进这个概念,我直接看到我想要的就用了。不知不觉。“原来这就是自己主动构建呀。”VS也支持编译后把非代码文件拷贝到编译文件夹。

在我的样例里,reader和viewer都要连接数据库,我想把连接字符串存在一个文件中,比方connection.txt,与两个程序放在同级文件夹。

因为上面清理项目状态的问题。这个txt常常被删掉。在VS里就方便了,txt与代码放一起,但设置编译后拷贝到编译文件夹。这样即可了。

要说VS有没有类似ant大神的自己主动构建工具,我不知道,但其csproj文件就具有一定的编程能力。

结论就是。Visual Studio比Eclipse好用!

欢迎拍砖。

Eclipse对于多个Java项目的支持并不友好!的更多相关文章

  1. 在命令行中运行eclipse中创建的java项目

    在命令行中运行eclipse中创建的java项目 博客分类: java相关 javaeclipse命令行  由于项目要求,需要对eclipse中的项目进行打包,似的可以在客户机上不装eclipse的情 ...

  2. eclipse中如何将java项目转为java Web项目

    有时候我们在eclipse中导入web项目时,系统当做一个java项目导入进来了.这时候在启动tomcat的服务器时无法找到该项目. 那么可以通过如下操作来将java项目转换为web项目. 1. 选择 ...

  3. Eclipse安装配置以及java项目和类的创建

    1.Eclipse的安装: 双击此应用程序 进入安装界面 选择下一步 更改路径将此默认路径改为 确定之后下一步更改jre的安装路径 在之前安装的java文件夹下新建一个jre文件夹 将jre安装在里边 ...

  4. Android 如何在Eclipse 引入外部纯Java项目(不是打成Jar使用)

    应用情景--如标题: 在Eclipse的 “Android启动项目”中引入“外部的纯Java项目”,能运行的只有是基于Android的测试代码才可以. 一直很纳闷,如果外部写好一个Java插件(例如服 ...

  5. java web项目导入到eclipse中变成了java项目的一种情况的解决办法

    前提,我把代码上传到github上之后,在另外一台电脑上拉下之后,先报出现的是jre不对,然后换成了当前的jre,然后红色的感叹号消失了但是之前项目上那个小地球不见了,也就是说变成了java项目. - ...

  6. Eclipse 运行导入的 Java 项目时,Error:A JNI error has occurred

    出现场景 导入 Java 项目,运行时,出现:Error:A JNI error has occurred.... 解决方式 该项目的 Build Path , 在Libraries 中删除后重新添加 ...

  7. Eclipse+Maven整合开发Java项目(二)➣webapp3.0以上的Maven项目

    概述 Eclipse集成Maven插件,新建maven-archetype-webapp项目的时候,采用的webapp的版本较低,默认是2.3,有些时候,我们希望升级Webapp的版本到3.0(Tom ...

  8. Eclipse+Maven整合开发Java项目(一)➣Maven基础环境配置

    概述 Maven是一个Java语言编写的开源项目管理工具,是Apache软件基金会的顶级项目.主要用于项目构建,依赖管理,项目信息管理.有些项目需要添加响应的依赖包,Maven就是公用包集合.存在远程 ...

  9. Eclipse中的普通Java项目如何部署到Tomcat中

    我现在的做法: 1.在Eclipse中配置Tomcat时,选择创建Context文件,而不是server.xml,好处是文件可以随便命名,与虚拟目录一致(即xml中的属性path).Tomcat加载项 ...

随机推荐

  1. linq使用 count与sum等

    using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; us ...

  2. 结构型设计模式之桥接模式(Bridge)

    结构 意图 将抽象部分与它的实现部分分离,使它们都可以独立地变化. 适用性 你不希望在抽象和它的实现部分之间有一个固定的绑定关系.例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者切换. ...

  3. android hook 框架 libinject 如何实现so注入

    前面两篇 android hook 框架 libinject2 简介.编译.运行 android hook 框架 libinject2 如何实现so注入 实际运行并分析了 Android中的so注入( ...

  4. 条件变量(Condition Variable)详解

    条件变量(Condtion Variable)是在多线程程序中用来实现“等待->唤醒”逻辑常用的方法.举个简单的例子,应用程序A中包含两个线程t1和t2.t1需要在bool变量test_cond ...

  5. hdu 1142(迪杰斯特拉+记忆化搜索)

    A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  6. UVA 11149.Power of Matrix-矩阵快速幂倍增

    Power of Matrix UVA - 11149       代码: #include <cstdio> #include <cstring> #include < ...

  7. (16)C#继承

    继承格式 class 子类:父类 { ....... } 1.子类能够继承父类所有的字段和方法. class Program { class Father { ; public void b() { ...

  8. geant4开发平台的构建方案的讨论a

    首先比较linux和windows下的平台的不同的功能 linux通过命令进行一系列操作,对于不习惯命令的也可以用鼠标,但是就显得过于落后,因为命令的存在自然表明其先进性. linux下的geant4 ...

  9. Uva 11542 Square

    题目中说数组中的数的最大质因子不超过500,我们筛出≤500的质数,然后考虑对每个质数列一个方程组.. 然后这几乎就是高斯消元求解异或方程组的模板题了.... 注意答案是 2^(自由元数量)-1,因为 ...

  10. 访问控制技术- 标准IP访问列表

    1.设置pc  IP 网关 192.168.1.1 192.168.1.254 192.168.1.2 192.168.1.254 192.168.3.1 192.168.3.254 2.设置交换机借 ...