導航:首頁 > 源碼編譯 > 源碼封裝成jar

源碼封裝成jar

發布時間:2023-05-31 13:32:19

Ⅰ 如何將java源碼生成jar文件

方法一:通過jar命令
jar命令的用法:
用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
選項包括:
-c 創建新的歸檔文件
-t 列出歸檔目錄
-x 解壓縮已歸檔的指定(或所有)文件
-u 更新現有的歸檔文件
-v 在標准輸出中生成詳細輸出
-f 指定歸檔文件名
-m 包含指定清單文件中的清單信息
-e 為捆綁到可執行 jar 文件的獨立應用程序,指定應用程序入口點
-0 僅存儲;不使用任何 ZIP 壓縮
-M 不創建條目的清單文件
-i 為指定的 jar 文件生成索引信息
-C 更改為指定的目錄並包含其中的文件
一、打包成一般的jar包
輸入如下命令即可:
[plain] view plain
jar cvf counter.jar -C bin .
二、打包成可運行的jar包
要打包成可運行的jar包,需要在MANIFEST.MF文件中指定主類,以Java源代碼行數統計程序的打包為例,演示如何打包:
1)首先編輯MANIFEST.MF文件,內容如下:
[plain] view plain
Manifest-Version: 1.0
Created-By: rsljdkt
Class-Path: .
Main-Class: Main
說明:
第一行指定清單的版本,若無,則JDK默認生成:Manifest-Version: 1.0。
第二行指明創建的作者,若無,則JDK默認生成Created-By: 1.6.0_22(Sun Microsystems Inc.)。
第三行指定主類所在類路徑。
第四行指明程序運行的主類。
2)使用jar命令進行打包:
[plain] view plain
jar cvfm counter.jar MANIFEST.MF -C bin .
方法二:使用Eclipse的Export功能:
一、打包成一般的jar包:
步驟如下:
1)在要打包的項目上右擊,選擇Export。
2)在彈出的窗口中,選擇Java -> JAR File,然後點擊next按鈕。
3)在JAR File Specification窗口中,設置打包成的文件名和存放位置,點擊兩側next。
4)在JAR Manifest Specification窗口中,設置MANIFEST.MF清單文件的配置,若僅僅打包成單純的jar包的話,不用做任何修改,採取默認即可,若打包成可執行jar包的話,可以使用已存在的MANIFEST文件或者直接選擇Main class。
5)點擊Finish按鈕,完成打包。
二、打包成可運行的jar包
步驟如下:
1)在要打包的項目上右擊,選擇Export。
2)在彈出的窗口中,選擇Java -> Runnable JAR File,然後點擊next按鈕。
3)在Runnable JAR File Specification窗口中,選擇Launch configuration和Export destination。
4)點擊Finish按鈕,打包完成。

Ⅱ 怎樣將java源代碼打包成可執行jar文件或exe文件

在你的jdk的bin目錄下,有個jar.exe文件,是用來打包的,你運行它會有幫助信息。JCreator的功能較弱,建議你用一個非常好的免費的IDE,叫netbeans,現在版本5.0,用它建一個工程,會給你自動打包成jar文件,eclipse也可以,要稍微配置一下。java一般都是打包成jar文件,可以在安裝了java虛擬機的計算機上跨平台使用。如果你想把它變成一個windows下的exe文件,可以用一些工具,如exe4j,
nativeJ等,可以把你的class文件打包成exe文件,用google搜一下,可以找到這些軟體的下載地址。

linux 下如何把源碼打包成hadoop-core-1.1.2.jar

1.首先確認,你的linux上有沒有安裝ant
2.確認你的 各種環境是否配置正確(不會的話去看hadoop開發指南)
我把我的build.xml發給你
<?xml version="1.0"?>
<!--build.xml - a simple Ant buildfile -->
<project name="Simple Buildfile" default="compile" basedir=".">

<!--Set up the env prefix for environment variable -->
<property environment="env"/>

<!-- The directory cotaining source code -->
<property name="src.dir" value="src" />

<!-- Temporary build directories -->
<property name="build.dir" value="build"/>
<property name="build.classes" value="${build.dir}/classes"/>
<property name="build.lib" value="${build.dir}/lib"/>
<property name="jar.name" value="howtouse.jar"/>

<!-- Hadoop path -->
<property name="hadoop.path" value="${env.HADOOP_HOME}"/>

<!-- Target to create the build directories prior to the -->
<!-- compile target -->
<target name="prepare">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.lib}"/>
</target>

<target name="clean" description="Removes all generated files.">
<delete dir="${build.dir}"/>
</target>

<target name="compile" depends="prepare" description="Compiles all source code.">
<javac srcdir="${src.dir}" destdir="${build.classes}" includeantruntime="false"
deprecation="false">
<classpath>
<pathelement location="${hadoop.path}/hadoop-core-0.20.203.0.jar"/>
<pathelement location="${hadoop.path}/hadoop-tools-0.20.203.0.jar"/>
<pathelement location="${hadoop.path}/hadoop-examples-0.20.203.0.jar"/>
<pathelement location="${hadoop.path}/lib/mockito-all-1.8.5.jar"/>
<pathelement location="${hadoop.path}/lib/junit-4.5.jar"/>
<pathelement location="${hadoop.path}/lib/commons-math-2.1.jar"/>
<pathelement location="${hadoop.path}/lib/commons-cli-1.2.jar"/>
<pathelement location="${hadoop.path}/contrib/datajoin/hadoop-datajoin-0.20.203.0.jar"/>
</classpath>
</javac>
</target>

<target name="jar" depends="compile" description="Generates jar in the dist directory.">
<!-- Exclude unit tests from the final Jar file -->
<jar jarfile="${jar.name}" basedir="${build.classes}" excludes="**/*Test.class"/>

</target>

<target name="all" depends="clean,jar" description="Cleans,compiles,then builds the Jar file."/>

</project>

確保以上條件後
1.將自己寫的java文件放到 /home/hadoop/ant/build/src 使用XFTP
2.在HDFS中新建一個文件目錄專門用來裝資源文件 hadoop fs -mkdir /user/src
3.將simple.txt測試文件放到HDFS中 hadoop fs -put/user/src
4.將/home/hadoop/ant/build/src下的java文件編譯打包成play.jar(名字由build.xml決定)
方法:編譯之前必須保證與build.xml同級目錄下 ant jar
5.hadoop單機模式運行的時候必須保證在lib目錄下
hadoop jar play.jar hadoop/MaxTemperature /user/src/simple.txt output

Ⅳ 如何把github上下載下來的maven源代碼zip文件打包成可運行的jar文件

1.下載Spring源碼
git下載地址:https://github.com/SpringSource/spring-framework/
2.下載完成後,編譯前需滿足的先決條件
1)當前系統中安裝了gradle,如果為安裝,可以從:http://www.gradle.org/downloads,選擇一個版本進行下載
2)當前系統安裝了OpenJDK 8 early access build 100 or later,點擊鏈接可以下載。安裝後還需要確認JAVA_HOME環境變數中指向了剛安裝的JDK8
3)鑒於上次編譯Hibernate的經驗,建議修改區域語言為「英語(英國)」,防止在編譯過程中出現字元編碼錯誤。
3.運行編譯命令,將代碼編譯為eclipse項目
1)命令行下切換當當前spring代碼的根目錄
cd C:\Users\Administrator\Documents\GitHub\spring-framework
2)運行import-into-eclipse.bat,這次不是直接運行gradlew.bat,但打開import-into-eclipse.bat可以看到,其實其內部還是調用了gradlew,如:
72行 set COMMAND=gradlew :eclipse
90行 call %COMMAND%
3)編譯時會提示你安裝Spring STS,下載地址
http://springsource.org/downloads/sts
選擇相應的版本下載,我選擇下載的是基於ECLIPSE KEPLER 4.3的32位zip版
下載地址為:
http://download.springsource.com/release/STS/3.3.0/dist/e4.3/spring-tool-suite-3.3.0.RELEASE-e4.3-win32.zip
直接回車確認即可
4)接著會提示要運行的命令是:
./gradlew cleanEclipse :spring-oxm:compileTestJava eclipse -x :eclipse
直接回車確認
5)接下來會自動下載所需的依賴包,等待其下載、編譯完成即可。
編譯的過程中,第一次編譯停留在「> Building > :spring-core:cglibRepackJar」這個提示處很久,查看cmd的進程,貌似死了,我將其結束後重新運行,依舊停留在這個地方。
註:在編譯過程中,經常出現在下載依賴項時沒有響應的情況,需要找到對應的java進程,結束後重新運行,或者直接關閉命令行窗口重新來一次,暫未找到具體原因。
猜測應該和我的網路狀況和java環境有關,編譯過程中嘗試了jdk8的32位和64位版本,都有這個問題。
在編譯多次不成功以後,我通過運行gradlew.bat install,嘗試先把所有的依賴項都先下載下來,在下載子項目相關的依賴項的過程中,仍然會出現命令沒有響應的情況,只能一次又一次地關閉,重新運行。
一次又一次編譯假死後,終於看到了「BUILD SUCCESS」,再次運行import-into-eclipse.bat,這次運行,跳過了很多之前需要下載的依賴項,應該是運行install命令的時候已經下載過了,但還是有一些仍然需要下載的依賴項。觀察輸出,會發現首先會下載依賴項所對應的pom文件,接著才會下載對應的jar。應該是和Maven相關的,有時間要把Maven、ant、ivy、gradle這些都看一下。

Ⅳ 如何把github上下載下來的源代碼zip文件打包成可運行的jar文件

既然已經安裝好maven庫和JDK,不需要 eclipse , 只需要執行一個命令就可以了,
打開命令提示符窗口,進入到源碼所在目錄,執行命令
mvn package

等待編譯打包完成,在 target 目錄下就可以了找到 jar 包了。

Ⅵ 如何將源代碼編譯成jar包

先打開命令提示符(win2000或在運行框里執行cmd命令,win98為DOS提示符),輸入jar Chelp,然後回車(如果你盤上已經有了jdk1.1或以上版本),看到什麼:

用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目錄] 文件名 ...

選項:

-c 創建新的存檔

-t 列出存檔內容的列表

-x 展開存檔中的命名的(或所有的〕文件

-u 更新已存在的存檔

-v 生成詳細輸出到標准輸出上

-f 指定存檔文件名

-m 包含來自標明文件的標明信息

-0 只存儲方式;未用zip壓縮格式

-M 不產生所有項的清單(manifest〕文件

-i 為指定的jar文件產生索引信息

-C 改變到指定的目錄,並且包含下列文件:

如果一個文件名是一個目錄,它將被遞歸處理。

清單(manifest〕文件名和存檔文件名都需要被指定,按'm' 和 'f'標志指定的相同順序。

首先在資源文件當前目錄寫一個清單文件example.mf

mf文件應是以下格式:
第一行為:
Main-Class: Hello
然後最少兩個空行。
其中的Hello.class是你寫的程序中main函數所在的那個類名。
有兩點必須記得:
1,在第一行中"Main-class:"之後一定要有一個空格。後有最少兩個空行
2,類名不能寫成Hello.class的格式,要省了後輟。
我試過了,你錯的原因是"Main-class:"之後沒有一個空格。
在CLASS目錄下運行:jar cfm example.jar example.mf A.class B.class

示例1:將兩個class文件存檔到一個名為 'classes.jar' 的存檔文件中:


jar cvf classes.jar Foo.class Bar.class

示例2:用一個存在的清單(manifest)文件 'mymanifest' 將 foo/ 目錄下的所有文件存檔到一個名為 'classes.jar' 的存檔文件中:

jar cvfm classes.jar mymanifest -C foo/ .

來個小例子試試看:

我們只有一個HelloWorld,如下:

public class HelloWorld{
public static void main(String[ ] args){
System.out.println("Hi, Hello World!");
}
}
將這個java文件存到C盤跟目錄下,ok,接下來,

在先前打開的命令提示符下(跳轉到C盤提示符下),我們輸入javac HelloWorld.java,然後繼續輸入:jar cvf hello.jar HelloWorld.class,回車後去你的C盤看看,多了什麼,沒錯 hello.jar 。

基本的步驟我們現在都知道了,你可以自己去嘗試一下隨著jar後面的參數的不同,結果有什麼變化。
緊接著我們看看如何運行我們的jar包。

在進入正題之前,你要先打開我們剛剛做好的jar包看看,多了什麼呢,META-INF目錄?再看看裡面是什麼,還有一個MANIFEST.MF文件是不是?用文本編輯器(我這里是UltraEdit)打開它看看:

Manifest-Version: 1.0
Created-By: 1.4.2 (Sun Microsystems Inc.)

就是這樣。這里我們對它進行修改,加一句:Main-Class: HelloWorld (在第三行)。這個就是我們之前寫的那個類,也就是我們的入口類。也即,

Manifest-Version: 1.0
Created-By: 1.4.2 (Sun Microsystems Inc.)
Main-Class: HelloWorld

接下來,我們在命令提示符里執行:

jar umf MANIFEST.MF app.jar (應該是hello.jar吧)

這樣我們使用了我們自己的MANIFEST.MF文件對原來默認的進行了更新。你不妨可以再進去看看是不是添上了Main-
Class: HelloWorld這一句。 (是嗎,我怎麼沒試出來,提示
java.io.FileNotFoundException:MANIFEST.MF(系統找不到指定的文件)怎麼回事?
)

Ok,這個最後的一步了,來驗證我們做的一切,在命令提示符中輸入:

java -jar hello.jar(執行)

出現了什麼, Hi, Hello World!

我們再來看看jar文件在tomcat中發布,注意:在tomcat中我們就不能再用jar這種格式,而改war格式,它是專門用於web應用的,其實整個過程下來基本上和jar是類似的:

先准備我們要打包的資源。

找到存放tomcat的webapps目錄,進到其中,新建一個文件夾,這里命名為hello,再進去新建WEB-INF文件夾,再進去新
建 classes文件夾,此時我們也將我們唯一的servlet,HelloWorld.java放到這里,在與classes目錄同級下建立一文
件 web.xml。Ok,目前我們初步建立了一個簡單的web應用。

這是HelloWorld.java:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("");
out.println("");
out.println("");
out.println("Hello, World!");
out.println("");
}
}//end here!

對它編譯。下面是web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.
//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>

在命令提示符下進到先前創制的hello目錄下,執行 jar cvf hello.war * ,我們便得到hello.war。將它拷貝至webapps目錄下,ok,來看最後一步,打開tomcat的目錄conf中的server.xml,加入:

<Context path="/hello" docBase="hello.war" debug="0" reloadable="true"/>
大功告成!運行它,啟動tomcat,後在瀏覽器中輸入http://localhost:8080/hello/HelloWorld,有了嗎?

最後,如果你想用ant來完成以上的打包活動,下面就告訴你:
對於jar來說。在build.xml中,

<target name="jar">
<jar destfile="${app_home}/hello.jar">
<fileset dir="${dest}" includes="**"/>
<!--fileset dir="${dest}" includes="**/action.properties"/-->
</jar>
</target>
對於war,

<war warfile="hello.war" webxml="./WEB-INF/web.xml">
<fileset dir="html"/>
<lib dir="lib/">
<exclude name="oracle*.jar"/>
</lib>
<classes dir="build/servlets">
<include name="**/*.class"/>
</classes>
</war>
好了,就這么多,希望對你有點幫助。:)

補充:

jar基本操作:

1. 創建jar文件
jar cf jar-file input-file(s)
c---want to Create a JAR file.
f---want the output to go to a file rather than to stdout.
eg: 1)jar cf myjar.jar query_maintain_insert.htm
2)jar cvf myjar.jar query_maintain_insert.htm
v---Proces verbose(詳細的) output.

3)jar cvf myjar.jar query_maintain_insert.htm mydirectory
4)jar cv0f myjar.jar query_maintain_insert.htm mydirectory
0---don't want the JAR file to be compressed.
5)jar cmf MANIFEST.MF myjar.jar yahh.txt
m---Used to include manifest information from an existing manifest file.
6)jar cMf MANIFEST.MF myjar.jar yahh.txt
M---the default manifest file should not be proced.
7)jar cvf myjar.jar *
*---create all contents in current directory.

2. 察看jar文件
jar tf jar-file
t---want to view the Table of contents of the JAR file.
eg: 1)jar vft yahh.jar
v---Proces verbose(詳細的) output.

3. 提取jar文件
jar xf jar-file [archived-file(s)]
x---want to extract files from the JAR archive.
eg: 1)jar xf yahh.jar yahh.txt(僅提取文件yahh.txt)

2)jar xf yahh.jar alex/yahhalex.txt(僅提取目錄alex下的文件yahhalex.txt)

3)jar xf yahh.jar(提取該jar包中的所有文件或目錄)

4. 修改Manifest文件
jar cmf manifest-addition jar-file input-file(s)
m---Used to include manifest information from an existing manifest file.

5. 更新jar文件
jar uf jar-file input-file(s)
u---want to update an existing JAR file

閱讀全文

與源碼封裝成jar相關的資料

熱點內容
基於單片機的遙控器設計 瀏覽:517
安卓如何取消圓圖標 瀏覽:11
收件伺服器怎麼樣 瀏覽:48
建築設計規范pdf 瀏覽:98
如何合並兩個pdf 瀏覽:174
刷機包必須要解壓的單詞 瀏覽:483
android課表實現 瀏覽:864
頭條app在哪裡能看見有什麼活動 瀏覽:511
冰櫃壓縮機電容80歐 瀏覽:609
安卓各個版本圖標什麼樣 瀏覽:152
無錫哪裡有製作手機app 瀏覽:538
php字元串轉json數組 瀏覽:6
數控網路編程課程有哪些 瀏覽:482
python30特效程序編碼 瀏覽:392
安卓跟蘋果互傳照片用什麼 瀏覽:848
原創小說app哪個好看 瀏覽:97
首台湖南造鯤鵬伺服器雲伺服器 瀏覽:268
redhatphp 瀏覽:456
android智能家居藍牙 瀏覽:646
pt螺紋編程 瀏覽:451