`

Jar包原理(小原理);不要依赖IDE

    博客分类:
  • Java
阅读更多
今天看HeadFirst的Java看到了第17章“发布程序”,本来还以为蛮简单的,当亲自上机实验,以包去创建可执行的jar时就出现问题了。
首先我手工建立好我的工程MyProject,其实就是建立一个名为MyProject的文件夹,然后在该文件夹下再创建source文件夹,然后就是你喜欢的包名,我地是com.jo 那么就是在source下再创建com文件夹,com下再创建jo文件夹,然后就是我地源文件了,我建一个名为Test.java的源文件,然后简单的写下一下代码做测试:

------------------------------------------------------------------------------

package com.jo;

public class Test {
public static void main(String args[]){
   System.out.println("Testing");
}
}

--------------------------------------------------------------------------------


OK,然后就运行CMD(我的操作系统是windows当然就是CMD了,而且我已经配置好我的java环境变量了)。进入到工程文件下的source文件夹:

cd MyProject/source


接着就是编译文件,我采用了书中所建议的文件组织方式,就是源代码放在source文件夹中,然后编译过的文件就放在classes文件夹中

javac -d ../classes com/jo/Test.java (编译此目录下的所有源文件则输入:javac -d ../classes com/jo/*.java)


书中提到如果还没有建立好对应的输出目录结构,只要加上-d,编译器会自动建立相应的目录结构,但起码要建立"classes"文件夹。

然后要执行程序就需要进入到classes目录下,运行:

java com.jo.Test


运行顺利的话就会在命令提示符下看到Testing.

接着就是以包来创建可执行的jar

步骤一:

确认所有的类文件都在classes目录下,并且对应的包结构都正确。

步骤二:

创建manifest.txt文件来描述哪个类带有main(),以及确认有使用完整的类名称

在manifest.txt中写入一行:

Main-Class: com.jo.Test


然后把manifest.txt文件放入classes目录下

注:Main-Class:后一定要空格,要不然会报错invalid header 这里代码最后一定要加入换行符,就是回车。否则打包的时候是可以通过,但是无法识别的,最后执行jar文件的时候会提示:Failed to load Main-Class manifest attribute from ...虽然现在我们编程的时候大多时候都会用到IDE,但这是基础,我个人认为有必要去了解。

最后命令提示符里进入到classes目录

cd MyProject/classes


然后打包:

jar -cvmf manifest.txt myjar.jar com


关于jar后的参数,如果是有Unix或Linux经验的话,估计是很了解的,然后最后的那个com,是指定目录之用,无需是完整的。

最后的最后,当我们需要执行这个jar文件的时候,就输入:

java -jar myjar.jar
分享到:
评论

相关推荐

    Netty 完整依赖的jar包, 你只需要下载netty源码,再添加这些jar就可以编译通过了

    对于标题和描述中提到的Netty完整依赖的jar包,它们是构建和运行Netty项目所必需的外部库。 首先,Netty 4.1.9版本是其发展过程中的一个重要里程碑,这个版本修复了许多已知问题,同时也引入了一些新的特性和优化。...

    jar包-JavaWeb所用到的jar包

    总结起来,Java Web开发中的JAR包是代码组织、部署和执行的基础,理解JAR的工作原理和使用方法对于高效开发至关重要。通过合理地使用JAR,开发者可以更好地管理项目结构,优化应用性能,确保代码的安全和稳定。

    jar包解析工具

    `jar`包解析工具对于开发者来说至关重要,尤其是在处理依赖管理和调试过程中。本篇文章将深入探讨`jar`包解析工具及其在项目开发中的应用。 首先,我们要理解`jar`包的基本结构。一个`jar`文件由一系列的`class`...

    geoTools所需jar包

    8. **最佳实践**:为了保证项目的可维护性和可扩展性,即使使用预编译的jar,也建议了解GeoTools的基本结构和原理,以及如何管理依赖。对于大型项目,最终可能还是需要将GeoTools整合到Maven或Gradle等构建工具中,...

    Javaweb开发JAR包

    创建JAR包通常通过使用`jar`命令行工具或者IDE如Eclipse、IntelliJ IDEA等集成开发环境来完成。例如,可以使用`jar cf jarfile manifestEntries file1 file2 ...`命令,其中`c`代表创建,`f`指定输出的JAR文件名,`...

    web开发常用jar包

    在IT行业中,尤其是在Java Web开发领域,`jar`(Java Archive)包是不可或缺的一部分。`jar`文件是一种特殊格式的归档文件,它...通过理解`jar`包的工作原理和使用方式,开发者可以更好地优化项目结构,提升开发效率。

    maven的jar包跟源码包

    Maven的POM(Project Object Model)配置文件允许我们定义项目的依赖关系,包括jar包的版本和依赖传递性。 ** Maven的源码包 ** 源码包,通常以".src.zip"或".src.tar.gz"的形式存在,包含了项目的全部源代码,...

    jar包2jar包2jar包2jar包2jar包2

    2. **创建jar**:使用`jar`命令行工具或者IDE(如Eclipse、IntelliJ IDEA)可以方便地打包Java项目为jar包。 3. **运行jar**:使用`java -jar`命令可以执行jar包中的主类,manifest文件中的Main-Class属性指定启动...

    jar包反编译工具,查看jar包源码

    在IDE中,我们可以直接导入jar包,并选择反编译查看源码,这对于日常开发工作尤其便利。 在使用反编译工具时,需要注意版权问题。确保你有权查看和使用目标jar包的源码,因为反编译可能会侵犯软件的知识产权。同时...

    关于servlet的jar包

    在开发过程中,如果使用IDE如Eclipse或IntelliJ IDEA,通常不需要手动添加Servlet JAR包,因为这些IDE会自动配置好开发环境。然而,在命令行或者非IDE环境下,需要手动将Servlet JAR包添加到项目的类路径(ClassPath...

    各种jar包

    本篇文章将深入探讨`jar`包的原理、用途以及如何管理和使用它们。 1. **jar包的构成与作用** - `MANIFEST.MF`:每个`jar`包中都有一个名为`MANIFEST.MF`的特殊文件,它包含了关于`jar`包的基本信息,如主类(用于...

    tomcat6源码依赖的jar包

    标题中的“tomcat6源码依赖的jar包”是指Tomcat 6版本在构建和运行过程中需要的一些核心库文件,这些文件通常是Java Archive (JAR)格式,包含了各种Java类和资源,使得Tomcat能够正常运行和处理Web应用程序。...

    mysql连接驱动相关jar包

    MySQL连接驱动相关jar包是Java应用程序与MySQL数据库交互的关键组件。这个特定的jar包,`zys.mysql...在使用过程中,了解JDBC原理,熟悉MySQL的配置和管理,以及掌握如何在项目中正确引用和管理jar包,都是必要的技能。

    ext的jar包ext的jar包ext的jar包

    9. **源码查看**:对于开源的jar包,开发者有时会需要查看源代码以理解其工作原理,或者定制化库以满足特定需求。Git仓库或代码托管平台如GitHub通常提供这样的资源。 10. **许可证合规**:使用任何第三方库,包括...

    JSF web jar包

    为了将这些jar包引入到项目中,开发者通常会将它们添加到项目的类路径(classpath)中,这可以通过IDE(如Eclipse或IntelliJ IDEA)的构建路径设置完成,或者在Maven或Gradle这样的构建工具中声明依赖。对于传统的...

    java开发常用jar包

    6. **JAR工作原理**: - 类加载器会从JAR文件中查找并加载类,遵循双亲委派模型。 - ZIP压缩算法使得读取JAR文件时,只解压需要的部分,提高效率。 7. **更新JAR**: 如果需要更新JAR中的内容,可以使用`jar uvf...

    基德的jar包和源文件

    2. **Maven**:如果项目是使用Maven构建的,可以在`pom.xml`文件中添加`jide`的依赖,Maven会自动下载并管理`jar`包。 3. **Gradle**:对于使用Gradle的项目,可以在`build.gradle`文件中声明对`jide`的依赖,Gradle...

    jar包查看工具.zip

    这个工具对于理解和调试依赖于JAR库的应用程序至关重要,尤其是当处理第三方或不透明的插件JAR包时。 首先,我们需要了解JAR文件的基本结构。JAR文件是由一系列的.class文件组成,这些文件包含了Java字节码,是Java...

    mysql.jar包

    同时,由于安全性考虑,不要在生产环境中使用未经验证的第三方源获取的jar包,以免引入潜在的安全风险。 总之,MySQL.jar是Java开发者与MySQL数据库沟通的关键桥梁,正确使用它可以极大地提高Java应用的数据处理...

    spring3.2 源码 jar包

    在本压缩包中,你将获得Spring 3.2版本的源码jar包,这对于开发者来说是一个宝贵的资源,可以深入理解Spring的工作原理,提高代码调试和优化的能力。 首先,让我们来了解一下Spring 3.2的主要特性: 1. **依赖注入...

Global site tag (gtag.js) - Google Analytics