lan*_*ape 6 java netbeans jar build
我想制作"双击"cli应用程序,但仍然没有得到如何.我知道我应该以某种方式编辑清单,但这就是全部.我用Google搜索了.但没有成功.谢谢你的任何提示.以下是构建,运行和清单的输出:
compile:
Created dir: /home/nick/NetBeansProjects/SemestralWork/dist
Building jar: /home/nick/NetBeansProjects/SemestralWork/dist/SemestralWork.jar
Not copying the libraries.
To run this application from the command line without Ant, try:
java -jar "/home/nick/NetBeansProjects/SemestralWork/dist/SemestralWork.jar"
jar:
BUILD SUCCESSFUL (total time: 1 second)
java -jar /home/nick/NetBeansProjects/SemestralWork/dist/SemestralWork.jar
Exception in thread "main" java.lang.NoClassDefFoundError: semestralwork/Main
Caused by: java.lang.ClassNotFoundException: semestralwork.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
Could not find the main class: semestralwork.Main. Program will exit.
MY MANIFEST created with build:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 14.0-b08 (Sun Microsystems Inc.)
Main-Class: semestralwork.Main
Class-Path:
X-COMMENT: Main-Class will be added automatically by build
Run Code Online (Sandbox Code Playgroud)
这两行告诉您需要知道的所有内容:
Exception in thread "main" java.lang.NoClassDefFoundError: semestralwork/Main
Caused by: java.lang.ClassNotFoundException: semestralwork.Main
Run Code Online (Sandbox Code Playgroud)
并且清单输出会删除另一条线索:
Main-Class: semestralwork.Main
Run Code Online (Sandbox Code Playgroud)
这意味着JAR文件正在查找名为的包semestralwork
和Main
在其中命名的类.它在这一点上失败了,因为它无法找到semestralwork
包或Main
类.
正如您在问题中指出的那样,问题确实存在于清单文件中.如果您愿意,可以直接在JAR文件中编辑它,但更好的想法是从Netbeans执行此操作:
Run
Main class:
,输入从命令行运行时要执行的类的完全限定类名.在你的情况下,正如我从你对@Aaron的答案的评论中看到的那样,如果你的主类在一个名为的文件中encryption.java
,并且它在默认包中(没有包),只需输入即可encryption
.
完成后,执行clean和build,然后再次尝试从命令行运行它.
HTH
默认的类搜索路径可能是问题所在。您应该尝试将目录更改为 jar 所在的位置并使用 java -jar Semestral.jar 启动。您也可能错误地命名了主类。还请包括您的包结构。