有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

jar有没有一种方法可以让某人运行我的Java程序,而不让他们看到代码?

所以基本上我制作了一个依赖终端的Java程序,并想开始分发它,但如果不给他们我的代码,我似乎找不到一种方法来做到这一点。当你做一件事的时候。jar文件它只在Windows上工作

当我尝试在Linux(CentOS)上运行时

  Exception in thread "main" java.lang.UnsupportedClassVersionError:

   Could not find the main class: MyClass. Program will exit.

我正在使用java-jar-MyJar命令。jar来运行它们。我在这个程序中使用JavaMail,所以这可能是一个问题。只有一个类,其中有一个主类

如果有人甚至可以选择使用jar文件来交付用户无法读取代码的程序,那也太好了。谢谢


共 (4) 个答案

  1. # 1 楼答案

    与安装在客户机Linux机器上的JDK相比,您实际用于编译和构建Jar的JDK更为新。这时JVM抛出

    Exception in thread "main" java.lang.UnsupportedClassVersionError:
    

    通过在控制台上运行以下命令,让您的客户报告其Java版本

    java -version
    

    然后,如果您使用的是Eclipse,则相应地设置项目的目标运行时。如果你自己编译Java源文件

    javac -target 1.4 source/MyClass.java 
    
  2. # 2 楼答案

    对我来说,问题似乎在于,您在运行代码的不兼容版本上编译了代码。例如,您使用JDK 1.7编译了它,但CentOS只安装了java 1.5版本Here is some more detailed information on the matter.

    至于你问题的标题,不,你不必给他们提供java源代码,让他们运行它。所以其他一些事情出了问题。很可能是我给出的答案

  3. # 4 楼答案

    除了其他人描述的版本问题,以及您不需要分发的事实。java文件,您需要在应用程序jar文件的清单文件中设置一个类路径条目来引用JavaMail jar文件,并且您必须将应用程序jar文件和JavaMail jar文件交付给用户。这可能很难做到正确。你可能想看看One-JAR来解决这个问题