如何使我用Java编写的程序对其他人可用?

如何使我用Java编写的程序对其他人可用?,java,object,draw,exe,.app,Java,Object,Draw,Exe,.app,所以我写了一个有趣的小程序,我想把它展示给我的一些朋友。我的朋友,不是程序员,不知道如果我把包含必要类和文件的文件夹发给他们该怎么办。我希望能够给他们发电子邮件(或者把它放在cd/thumbdrive上),然后他们可以双击并让它运行程序。我完全不知道如何才能做到这一点。我在上一门课,我们使用linux计算机(我不在课堂上时使用mac),我们必须对.java文件进行javac,然后使用java“文件名”使其运行。我在Mac和PC上有朋友,我希望他们能够点击程序并启动它 如果有区别,程序是使用对象绘

所以我写了一个有趣的小程序,我想把它展示给我的一些朋友。我的朋友,不是程序员,不知道如果我把包含必要类和文件的文件夹发给他们该怎么办。我希望能够给他们发电子邮件(或者把它放在cd/thumbdrive上),然后他们可以双击并让它运行程序。我完全不知道如何才能做到这一点。我在上一门课,我们使用linux计算机(我不在课堂上时使用mac),我们必须对.java文件进行javac,然后使用java“文件名”使其运行。我在Mac和PC上有朋友,我希望他们能够点击程序并启动它


如果有区别,程序是使用对象绘制库编写的。

您需要告诉我们您使用的是哪个IDE,但只需将其编译成一个可执行的jar,它们可以在所有具有java版本的系统上工作,您可以再次编译它们(因此是多平台的)

使用
jar
命令来构建一个可执行的jar文件。它基本上是一个有一定保证的ZIP文件

在jar文件中,您需要一个/META-INF目录,其中包含一个名为的文件。它描述了jar文件的“清单”,该文件在某些方面是根据装运清单建模的

在MANIFEST.MF文件中,您需要该指令

Main-Class: org.mystuff.path.Main
当jar文件通过命令“exectued”时,它应该指示JVM运行org.mystuff.path.Main类

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文件;将目录更改为“bin”并运行“myprogram.whatever”。

我会说,使用小程序,那么就不需要运行任何命令。下面是您可以做的

  • 如果您有多个类,那么创建一个jar,如果您不想创建jar,请将所有代码移到一个类中
  • 然后创建一个扩展类,您可以从这个applet类加载程序,或者更好地将所有内容移动到applet类(这不是最好的设计,但在这种情况下会使您的生活更轻松)
  • 然后创建一个html文件,类似这样的东西,这个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/>
    
    
    var jEnabled=navigator.javaEnabled();
    如果(!jEnabled){
    文档。写(“在浏览器上查看我”);
    }
    


  • 使用objectdraw创建可执行jar文件:

    通常,objectdraw与BlueJ IDE一起使用,因此这些说明用于使用BlueJ和objectdraw库

  • 确保您有一个具有begin()方法的类。这是您在BlueJ中运行的类,现在您希望将其转换为可执行的jar文件

  • 您需要创建一个新类,我们称之为Main。它应该如下所示:

    public class Main{
    
        public static void main(String[] args){
            ClassWithABeginMethod game = new ClassWithABeingMethod();
            game.begin();
        }
    
    }
    
  • 现在,在BlueJ中,打开项目下拉菜单。选择“创建Jar文件…”

  • 在打开的对话框中: 确保类“Main”是为主类选项选择的类。 在“包含用户库”下,选择“objectdraw.jar”选项。 按“继续”

  • 打开的新对话框询问您要将包含新jar文件的新文件夹保存在何处。请随意命名。结果将是一个新文件夹,其名称与您选择的名称相同,包含同名jar文件

  • 完成了。使用命令行提示符:“java-jar jarFileName.jar”运行新的jar文件


  • 你知道如何制作可执行JAR吗?这里有一篇关于可执行JAR的帖子很有趣……可执行JAR文件与Mac和Windows兼容吗?@Calwellysr,它们应该是,java是跨平台的。@Calwellysr:它们与任何安装了适当JVM的系统兼容(即,如果您在Java 6下编译应用程序,那么他们将需要Java 6 JVM)。不使用IDE。我正在使用命令提示符来编写、编译和运行文件。使用IDE,它将帮助您。Eclipse、Netbeans或IntelliJ。我的问题是,我已经在扩展WindowController,因为它是使用ObjectDraw库编写的。我制作了一个可执行jar,但它不工作,我认为这是因为ObjectDraw。我想我我只需要等到下学期我们不再使用ObjectDraw。啊,我没有看到关于ObjectDraw的评论,看看Java Web Start,它有点复杂,但会是一个很好的学习工具