由于项目要求,需要对eclipse中的项目进行打包,似的可以在客户机上不装eclipse的情况下正常运行。
一.环境说明:
eclipse---3.5
jdk-------1.6.0.22
os--------xp,win7
二.解决方案详情:
1.
项目不引用外部jar包,仅仅依赖于jdk相关jar包,则有两种解决方案
方案一、通过eclipse/myeclipse-->export-->java-->runnable JAR File,
按照提示选择Main方法,再下一步,最终生成jar文件;在cmd命令行下执行
java -jar XXX.jar即可
方案二、还是通过eclipse/myeclipse工具导出,但是不是导出jar文件,而是导出
包结构及class文件:export-->File System-->在这一步选择要导出的类
以及项目的配置文件还有lib目录(也就是项目需要的jar包)(这是关键的一
步,导出类时因为eclipse/myeclipse默认编译后的class文件在bin/包
路径/class文件,这里导出时不需要bin这个文件夹,把包路径和包下的
class文件一起导出。最后还应注意,比如我们的项目包都是以
com.project.xxx报下,而程序入口的main文件在
com.project.main包下,则cmd中执行java命令时应该进入到com包所在的
目录下,比如在classes目录下则cd classes,执行命令如下:
java com.project.main.Main
2.
项目引用第三方jar包,并且需要在启动时读取配置文件
还是通过eclipse/myeclipse工具导出,但是不是导出jar文件,而是导出
包结构及class文件:export-->File System-->在这一步选择要导出的类
以及项目的配置文件还有lib目录(也就是项目需要的jar包)(这是关键的一
步,导出类时因为eclipse/myeclipse默认编译后的class文件在bin/包
路径/class文件,这里导出时不需要bin这个文件夹,把包路径和包下的
class文件一起导出,并保证和配置文件目录即lib目录同级,不这么做的话
在cmd命令下执行java 类名命令时会java.lang.NoClassDefFoundError
错误,即使代码没有任何问题的情况下也会报该异常)。最后还应注意,比如我
们的项目包都是以com.project.xxx报下,而程序入口的main文件在
com.project.main包下,则cmd中执行java命令时应该进入到com包所在的
目录下,比如在classes目录下则cd classes,执行命令如下:
java -Djava.ext.dirs=./lib com.project.main.Main
其中-D参数表示加载项目所需要的jar包即lib下所有*.jar
注意:加入配置文件在项目根目录/conf/目录下,那么就必须把conf文件夹
放在和com包同一个目录下,并在代码中以conf/XXX来读取配置文件即
可
3.
补充说明
这里说明下为什么在项目有配置文件的时候没什么没有采用打jar包形式来导出项目。
因为如果采用打jar包的形式,则在jar在项目的时候相当于是负责配置加载的类需要
读取同一个jar包下的配置文件(读取资源文件同理),这对于项目完全可以修改的情况
下我们可以修改读取配置文件的方式为:
InputStream is=this.getClass().getResourceAsStream("/conf/res.txt");
来读取配置问价或者资源文件;
但是本分项目早已将加载资源文件的代码单独打为jar包,那么我们不能去修改原有
代码,那么“2”中的方法就比较有效了!
三、扩展知识点(备忘)
1.可运行的jar文件和普通jar文件的区别在jar包中META-INFO/MANIFEST.MF
文件:其中可运行jar中指定了main方法所在类的位置,以及运行时所依赖的jar包
Rsrc-Class-Path: ./ commons-lang.jar
Class-Path: .
Rsrc-Main-Class: org.test.Main
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
2.对于在某个包下的Main Class文件,在命令行下执行该类需要在根目录下执行
java com.project.main.Main
命令,并且必须带包名,否则会报NoClassDefFoundError异常
3.java命令-D用来设置系统变量值;java.ext.dirs表示的是告诉虚拟机加载该路径下
所有的jar文件;ext.dirs指定的jar文件由extention classloader负责加载
分享到:
相关推荐
在 Eclipse 中,创建一个新的 Java 项目,并添加必要的库和依赖项。然后,创建一个新的包和类,并添加必要的代码来实现 Web Services。 从命令行运行应用程序 使用 Eclipse 的 Ant 工具来从命令行运行应用程序。...
通过安装EasyShell,用户可以直接在Eclipse的右键菜单中选择文件或项目的路径,然后在系统的命令行环境中打开该路径,无需手动复制粘贴或记忆复杂的目录结构,大大提高了工作效率。 【详细知识点】 1. **Eclipse...
1. 新建项目:在Eclipse中选择“文件”->“新建”->“动态Web项目”,输入项目名称,选择目标运行时(如Tomcat或WebLogic),设置项目属性。 2. 结构配置:项目创建后,会自动生成标准目录结构,包括src/main/java...
2. **添加Applet类**:在项目中添加上述示例代码。 3. **编译并运行**:在Eclipse中直接点击`Run`->`Run`按钮即可运行Java Applet程序。 #### 五、在JDK环境下编写与运行Java Applet 1. **编译源代码**:首先使用`...
- **选择项目**:在项目资源管理器中,右键点击项目名称,选择`New -> Package`,创建一个新的包(例如:`cn.edu.fjnu.hyan`)。 - **创建Java类**:在新创建的包上右键点击,选择`New -> Class`。输入类名(例如:`...
- 创建Java项目:在Eclipse中,你可以通过"File > New > Java Project"来创建新的Java项目。 - 编写代码:在新建的源文件(`.java`)中编写代码,利用Eclipse的代码补全功能快速编写。 - 运行程序:通过右键点击...
在本文中,我们将深入探讨如何在Eclipse集成开发环境中运行Java Swarm和jHeatBugs示例,这将涉及Swarm的安装以及与Eclipse的集成。首先,让我们了解这两个工具的基本概念。 **Swarm** 是一个Java微服务框架,它支持...
在src文件夹下,创建main和test文件夹,然后在main和test文件夹下分别创建java、resources、scala三个文件夹。最后,在project文件夹下创建build.properties文件。 五、编写build.sbt文件 在build.sbt文件中,添加...
1. **通过命令行运行**:如果你的Jar文件包含主类并且可以独立运行,可以在命令行中使用`java -jar jarfilename.jar`来启动。 2. **在Eclipse中运行**:在Eclipse中,可以创建一个新的运行配置,选择`Java ...
运行Eclipse时,需要配置Java环境,包括编译版本和运行环境。需要配置Server,选择tomcat Server,配置tomcat运行环境,包括添加tomcat运行环境,配置tomcat内存设置命令等。 四、Eclipse配置 Eclipse配置是...
现在您已经可以运行这个 Java 程序了,在运行 Java 程序时需要考虑多个事情,包括 Java 运行环境,是否需要命令行参数,如果不知一个类有 main( 运行”)函数究竟该使用哪一个,在 Eclipse 中正确启动一个 Java 程序...
8. **IDE vs 命令行**:IDE如Eclipse、IntelliJ IDEA等会自动处理这些编译和运行的细节,但在命令行下,理解这些原理和操作是至关重要的,特别是在自动化脚本或持续集成环境中。 总之,理解Java的命令行编译和运行...
J2SDK包含J2RE以及开发所需的源代码和文档,但如果你只需要运行Eclipse,J2RE就足够了。Eclipse推荐的J2RE版本是1.3.1及以上,通常可以从网上找到1.4.x版本。 接下来,为了在Eclipse中进行PHP开发,你需要安装名为...
2. 在项目中新建Python脚本文件,如`test_script.py`。 3. 将MonkeyRunner脚本写入文件。 4. 右键单击文件 -> Run As -> MonkeyRunner Script。 这样,你就可以在Eclipse的环境中调试和运行MonkeyRunner脚本了。 #...
在压缩包子文件的文件名称列表中提到的“eclipse”,很可能是指解压后将得到Eclipse IDE的根目录,包含了运行Eclipse所需的所有文件和配置。通常,这些文件会包括一个名为“eclipse”的可执行文件,它是启动Eclipse ...
- **使用 `-data` 命令行参数**: 通过将 `-data your_workspace_location` 添加到快捷方式属性的目标字段或直接在命令行中指定。 - **示例**: `eclipse -data c:\users\robert\myworkspace` ##### 3.3 显式指定 ...
6. **调试和测试**:由于Jetty是内嵌在项目中的,所以你可以直接在Eclipse中设置断点进行调试,无需额外的部署步骤。 通过以上步骤,你就可以在Eclipse中利用Maven和Jetty快速搭建一个可运行的Web应用程序了。这种...