我想为我的java项目创建一个可删除的文件,上一次我用Jbuilder或netbean做的,我记得但是我不知道如何在JDeveloper中做它以制作Excutable文件(EXE文件)
请告诉我,请说清楚......
编辑: 它是简单的桌面应用程序。它不是Web应用程序....
EDIT2: 我删除该部分以检查参数并运行我遇到此问题的程序: 我该怎么办?
Executing: C:\JDeveloper\mywork\SourceManagmentTools\Client\deploy\SMT.exe
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: oracle/jdeveloper/layout/VerticalFlowLayout
at Main.GUI.SmMainFrame.<init>(SmMainFrame.java:134)
at Main.GUI.SmRun.<init>(SmRun.java:25)
at Main.GUI.SmRun$1.run(SmRun.java:82)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: oracle.jdeveloper.layout.VerticalFlowLayout
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 17 more
答案 0 :(得分:1)
您考虑过Launch4j吗?
关于配置问题,Launch4J documetation说:
运行时的其他JVM选项
创建包装器或启动器时 编译所有配置详细信息 进入可执行文件并不能 改变而不重新创建它 用资源编辑器进行黑客攻击。 Launch4j 2.1.2引入了一个新的 允许传递额外的功能 运行时的JVM选项 .l4j.ini文件。现在你可以指定了 配置文件中的选项,ini 文件或两者,但你不能 覆盖他们。 ini文件的名称 必须对应于可执行文件 (myapp.exe:myapp.l4j.ini)。该 参数应该用。分隔 空间或新线,环境 支持变量扩展 例如:
# Launch4j runtime config
-Dswing.aatext=true
-Dsomevar="%SOMEVAR%"
-Xms16m
答案 1 :(得分:0)
如果您的桌面应用程序有GUI,并且您可以从站点分发它,请查看Java Web Start。
JWS为最终用户提供“一键式”安装选项,自动更新,桌面集成,启动屏幕等等。它是标准Java(1)发行版的一部分(自1.4.2开始)&amp;得到了Oracle的支持。
(1)JWS使用标准的Jar文件 - 不需要exe,这意味着它可以在* nix&amp; Mac中。
答案 2 :(得分:0)
这么简单的家伙...... 我用这种方式解决了我的问题......最简单的方法......
首先检查客户端计算机中安装的java版本,在CMD中通过此命令检查: java -version
确认java版本后,需要制作一个bat文件。 [版本中的冲突可能会导致null除外]之后您应该知道您在此项目中使用了哪个外部包...例如我使用1个文件连接到oracle数据库“ojdbc14”而另一个用于GUI,之后您可以简单地运行你的程序,甚至将参数传递给他们,只需在你的类的可运行名称的末尾提及它们:
java -client -classpath ojdbc14.jar;lipstikLF-1.1.jar;swing-layout.jar;smt.jar Main.GUI.SmRun rimrim
我想我们在项目中使用的那些库也需要运行,但我不确定,我只是建议这项工作
java -client -classpath <name of you library>;<name of you library>;<name of your jar file> nameOfPackage.nameOfRunClass parameter[if any]
如果有人在这篇文章中添加一些有用的信息,我将非常感激