以下内容来自互联网,经过试验后觉得此文简单可行,于是记录于此;有些地方与我的试验结果不符,于是修改了下。
向原作者致谢!
首先,手工建立好我的工程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("holy crap!");
}
}
--------------------------------------------------------------------------------
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文件夹里面,差一点也不行,比如就不能进入到com/jo/Test文件里面,那样会提示找不到类的!)
然后要执行程序就需要进入到classes目录下,运行:
java com.jo.Test
运行顺利的话就会在命令提示符下看到我们期待的"holy crap!"了。
接着就是以包来创建可执行的jar
步骤一:
确认所有的类文件都在classes
目录下,并且对应的包结构都正确(下面文件夹结构应为/classes/com/jo/Test)。
步骤二:
创建manifest.txt(随便一个文本文件都行,主要是供jar命令提取其中的文本来生成MANIFEST.MF)文件来描述哪个类带有main(),以及确认有使用完整的类名称
在manifest.txt中写入下面这一行:
Main-Class: com.jo.Test(注意,此处的Test代表的是Test.class类文件,因为main()在里面,所以...)
然后把manifest.txt文件放入classes
目录下
注:
这里代码最后一定要加入换行符,就是回车。
否则打包的时候是可以通过,但是无法识别的,最后执行jar文件的时候会提示:Failed to load
Main-Class manifest attribute from
...虽然现在我们编程的时候大多时候都会用到IDE,但这是基础,我个人认为有必要去了解。(这是原作者提示的,但经试验,貌似可以成功,所以这个换行符没有也行),因为这种错误的主要原因是:
打包的时候出错了,或者是使用了旧的jar包进行偷梁换柱时没有更改启动的main-class路径,因此我们要做的只是将MANIFEST.MF中的Main-Class: 项修改为正确的main()方法所在类就行。
最后命令提示符里进入到classes目录,
cd MyProject/classes
然后打包:
jar -cvmf manifest.txt myjar.jar com
关于jar后的参数(主要就是f与m的次序问题),如果是有Unix或Linux经验的话,估计是很了解的(m对应的是文本文件manifest.txt,f对应的是生成目标jar文件myjar.jar),然后最后的那个com,是指定目录之用,无需是完整的。
最后的最后,当我们需要执行这个jar文件的时候,就输入:
java -jar myjar.jar
”holy crap!“
分享到:
相关推荐
在Java编程中,有时我们需要在运行时动态地编译源代码文件,并将其打包成可执行的JAR(Java Archive)文件。这样的需求通常出现在我们希望根据用户输入或特定条件生成并执行新的代码逻辑时。本教程将深入讲解如何...
- **Class-Path**: 指定JAR文件运行时所需的类路径,通常用于依赖其他JAR文件的情况。 - **Implementation-Title**: 定义程序的实现标题。 - **Implementation-Version**: 定义程序的实现版本。 - **Built-By**: ...
在`JDBCMysql.java`的例子中,我们需要先将MySQL驱动添加到类路径,然后编译源代码,最后将所有类和依赖库打包到新的JAR文件中。 这个过程可能看起来复杂,但它是Java开发过程中不可或缺的一部分,特别是在没有集成...
这将生成一个对应的.class文件,这是Java的字节码文件。 3. **运行Java程序**: 编译成功后,使用java命令运行生成的.class文件: ``` java 类名 ``` 对于上述例子,命令将是: ``` java HelloWorld ``` ...
我们将重点讨论Java打包工具以及一个具体的例子——isetup-5.4.2-unicode.exe,它是一个安装制作工具,用于创建自定义的Java应用程序安装程序。 首先,让我们了解Java打包的基本概念。Java打包主要涉及以下几个步骤...
这样就生成了一个名为`combine.jar`的JAR文件,可以通过`java -jar combine.jar`来运行。 如果需要引用外部JAR文件,例如在例2中引用`mysql-connector-java-5.1.18-bin.jar`来连接MySQL数据库,我们可以将外部JAR...
如果你想要打包一个目录下的所有`.class`文件,可以简化为: ```bash jar cvf ibstool.jar * ``` 这将在当前目录下搜索所有文件,并将其打包至`ibstool.jar`中。但需要注意的是,这种方式不会保留原来的目录结构。...
2. **创建HTML文件**:在一个文本编辑器中创建一个HTML文件(如`1.html`),并在其中包含指向编译后的Applet文件的`<applet>`标签。示例代码如下: ```html ``` 3. **运行Applet**:使用`applet...
JAR(Java Archive)文件是一种归档格式,用于将多个Java类文件和资源文件打包在一起,通常包括一个清单文件(Manifest.txt)来指定主类。在本例中,主类是`HelloWorld`,所以Manifest.txt内容应为: ``` Main-...
一个基本的Java项目通常包含src目录(存放源代码)、lib目录(存放依赖的jar文件)和build目录(存放编译后的类文件和打包好的结果)。在这个例子中,JettySample.java应该放在src目录下,而webserver.jar应该放在...
例如,你可以创建一个`compile`目标用于编译源代码,一个`jar`目标用于打包成JAR,以及一个`war`目标用于打包成WAR文件,适用于Web应用程序。 ```xml ${build.dir}/classes"/> ${build.dir}/dist"/> ${...
Java Ant 打包Jar是Java开发中的一个关键步骤,它涉及到构建自动化的过程。Ant是一个由Apache软件基金会开发的Java库和命令行工具,其设计目标是驱动构建过程,类似于Make,但它是用Java编写的,因此可以跨平台运行...
根据提供的文件信息,这里将深入解析“ant学习笔记:一个简单的java编译部署实例”,涵盖标题、描述、标签以及部分内容中提及的关键知识点。 ### Apache Ant简介 Apache Ant是一款开源的Java环境下的自动化构建...
在Java编程中,命令行编译是学习和工作中不可或缺的一部分,尤其是在没有集成开发环境(IDE)的情况下。本文将深入探讨如何在命令行环境下编译和运行包含包结构的Java程序。 首先,Java中的包(package)是用来组织...
然后选择Next--选择VM不管,默认即可--Next--下一个界面继续Next----这个时候再点击next就开始将jar打包为exe了。 八、总结 通过上述步骤,可以将Java桌面软件打包为exe格式,解决了程序不能在不同机器上正确运行...
6. **打包和运行**:确保你的Java类(`.class`文件)被包含在最终的APK中,然后编译并运行QT项目。在Android设备上,你将看到C++代码成功调用了Java方法并显示了结果。 总结来说,QT调用JAVA文件的关键在于使用...
打jar包是Java开发中常见的操作,用于将编译后的类文件和其他资源打包成一个可执行的JAR(Java Archive)文件。以下是如何在Eclipse环境中打jar包的详细步骤和注意事项: 首先,确保你已经有一个Java项目。在这个...
例如,一个常见的构建流程可能包括编译源代码、生成Javadoc、打包JAR文件和运行测试等步骤。 Ant的主要特点有以下几点: 1. **可移植性**:由于Ant的构建文件是XML格式,因此可以在任何支持Java的平台上运行,无需...
另外,集合框架是Java库的一个重要组成部分,包括List、Set和Map接口,以及它们的实现类,如ArrayList、LinkedList、HashSet、HashMap等,这些数据结构提供了存储和操作对象的多种方式。 线程是Java的另一大特色,...
总结来说,使用Eclipse打包Java应用程序为Jar文件的过程相对简单,只需遵循上述步骤,就可以轻松实现。需要注意的是,打包前的程序调试工作以及正确选择主类对于整个过程能否成功至关重要。完成打包后的Jar文件可...