2011-09-23 66 views
2

所以我寫了一個有趣的小程序,我想把它展示給我的一些朋友。我的朋友,不是程序員,如果向他們發送包含必要的類和文件的文件夾,他們不知道該怎麼做。我希望能夠通過電子郵件向他們發送一些信息(或將其放在CD/thumbdrive上),然後雙擊並讓它運行程序。我完全不知道如何做到這一點。我正在上課,我們使用Linux計算機(當我不在課堂時,我使用了一個mac),我們必須javac .java文件,然後使用java「文件名」來運行它。我有Mac和PC上的朋友,我希望他們能夠點擊該程序並繼續。如何讓我的程序以Java編寫,可用於其他人?

如果它有所不同,程序是使用對象繪製庫編寫的。

+0

你知道如何使一個可執行的JAR? – tjameson

+0

這裏是一個關於可執行jar的文章http://introcs.cs.princeton.edu/java/85application/jar/jar.html –

+0

有趣的....是與Mac和Windows兼容的可執行jar文件? – CaldwellYSR

回答

2

使用jar命令建立一個可執行的jar文件。它基本上是一個有一定保證的ZIP文件。

在jar文件中,您將需要(這是一個reqirement)一個/ META-INF目錄,其中有一個名爲the manifest (/META-INF/MANIFEST.MF)的文件。它描述了jar文件的「清單」,這在某種程度上模仿了運輸清單。

裏面的MANIFEST.MF文件,你需要的指令

Main-Class: org.mystuff.path.Main 

哪些應該直接在JVM運行org.mystuff.path.Main上課的時候jar文件通過命令

「exectued」
java -jar myproject.jar 

請注意,JAR文件傾向於以不同方式處理類路徑,因爲它們忽略CLASSPATH環境變量和-classpath命令行選項。如果需要引用其他JAR文件,則需要在MANIFEST.MF文件中添加一個classpath指令。使用上面的清單鏈接來查看有關嵌入類路徑的詳細信息。

根據「項目」的簡單性,單個JAR文件可能足以運送給它們;然而,如果您需要的不止於此,您可能會發現自己不得不在幾個目錄中發送幾個文件。在這種情況下,將文件(包括JAR文件)和目錄放在第二個zip文件中。雖然你可以從許多不同的方式選擇「包」的項目,我建議

(layout inside the zip file) 
/Readme.txt (a text file describing what to do for new comers) 
/License.txt (a text file describing how liberal/restrictive you wish to be concerning your authorship rights. 
(the license sounds like overkill, but without it nobody can prove they're not breaking the law) 
/bin/myprogram.sh (shell script containing "java -jar ../lib/myprogram.jar") 
/bin/myprogram.cmd (Windows batch file containing "java -jar ..\lib\myprogram.jar") 
/lib/myprogram.jar (the executable jar file containing your compiled code) 
/lib/otherjar.jar (other jar files, as necessary) 

有了這樣一個zip文件結構,安裝說明,然後成爲「解壓縮zip文件;將目錄更改爲」斌「並運行」myprogram.whatever「

0

您的需要告訴我們哪一個IDE你正在使用,但只是把它編譯成可執行的JAR,它們在具有Java版本的所有系統工作,你重新編譯他們(如此多)

+0

不使用IDE我使用命令提示符來編寫,編譯和運行這些文件。 – CaldwellYSR

+0

使用IDE,它會幫助你。 Eclipse,Netbeans或IntelliJ。 – KarlP

0

我會說使用一個小程序,那麼就沒有必要運行任何命令。這裏是你可以做的

  1. 如果你有多個類,然後創建一個executable罐,如果不希望創建罐子所有的代碼移動到一個類
  2. 然後創建一個擴展Applet一類,你可以從這個Applet類加載程序,甚至更好的移動每一件事情給Applet類(不是最好的設計,而是讓你的生活更容易在這種情況下)
  3. 然後創建一個HTML文件,一些這樣的事,這個網站有腳本,將引導怎樣做才能查看程序

    <script> 
        var jEnabled = navigator.javaEnabled(); 
        if (!jEnabled){ 
    
          document.write("<a href=\"http://www.java.com/en/download/help/enable_browser.xml\">Enable Java</a> on your browser to view me "); 
        } 
    </script> 
    
    <br><br> 
    <applet code="AppletLauncher.class" width=100 height=140/> 
    
+0

我的問題是我已經擴展WindowController,因爲它是使用ObjectDraw庫編寫的。我做了一個可執行的jar文件,但它不起作用,我認爲這是因爲ObjectDraw。我想我只能等到下個學期才能使用ObjectDraw。 – CaldwellYSR

+0

啊我沒有看到關於ObjectDraw的評論,看看Java Web Start,這是一點點詳細,但將是一個很好的工具來學習http://download.oracle.com/javase/6/docs/technotes/導遊/ javaws的/ –

0

使用objectdraw以創建可執行的jar文件:

通常,objectdraw用於與BlueJ的IDE所以這些指令用於使用BlueJ的和objectdraw庫。

  1. 確保您有一個具有begin()方法的類。這是你在BlueJ中運行的類,現在你想把它變成一個可執行的jar文件。

  2. 你需要做一個新的類,我們稱之爲主。它應該看起來像這樣:

    public class Main{ 
    
        public static void main(String[] args){ 
         ClassWithABeginMethod game = new ClassWithABeingMethod(); 
         game.begin(); 
        } 
    
    } 
    
  3. 現在,在BlueJ中打開項目下拉菜單。選擇「創建Jar文件...」。

  4. 在打開的對話框中: 請確保「Main」類是爲Main類選項選擇的類。 在「包含用戶庫」下,選擇「objectdraw.jar」選項。 按繼續。

  5. 打開被詢問要保存新文件夾,將包含新的jar文件的新對話框。把它命名爲你想要的。結果將是一個新文件夾,其中包含您選擇的名稱,其中包含一個名稱相同的jar文件。

  6. 大功告成。使用命令行提示符:「java -jar jarFileName.jar」運行新的jar文件。

相關問題