- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
如果您从未玩过 Minecraft,那么这就是启动器机制的工作原理。
用户可以下载一个JAR(或者一个JAR打包成一个EXE),它完全没有Minecraft客户端的代码。这被认为是发射器。当启动器启动时,它会显示一个包含新闻等的登录屏幕。然后,在登录后,启动器会运行主要的 Minecraft 核心 minecraft.jar。如果它不存在于系统中,它会下载它。Minecraft 启动器也不需要任何外部 Java 库即可运行。
它是如何做到这一点的?
我目前正在尝试复制该功能,但是,当我在 Eclipse 中导出为可运行的 JAR 时,当我尝试启动它时,它会打印“找不到主类 launcher.jar。程序将退出”(这是在控制台上,我希望能够双击 JAR 并启动它)
File file = new File(System.getProperty("user.dir") + "/lessur.jar");
System.setProperty("org.lwjgl.librarypath", System.getProperty("user.dir") + "natives");
URLClassLoader classLoader;
classLoader = URLClassLoader.newInstance(new URL[]{file.toURI().toURL()});
classLoader.loadClass("zombie.engine.Lighting2").newInstance();
最佳答案
Runnable JAR 需要一个 Manifest 来指示要使用的主类。从 Eclipse 导出时,一个选项是选择一个运行配置(例如,从以前的测试运行),Eclipse 使用该信息来填充 list 。
更新:再考虑一下后,根据上面的输出和下面的评论,我的猜测是您正在尝试使用命令行中的“java”命令运行 jar .如果是这种情况,您需要使用:java -jar launcher.jar
不是:java 启动器.jar
这是我认为您看到的内容的再现:
C:\Users\Tim\Desktop>java launcher.jar
Exception in thread "main" java.lang.NoClassDefFoundError: launcher/jar Caused by:
java.lang.ClassNotFoundException: launcher.jar
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)
Could not find the main class: launcher.jar. Program will exit.C:\Users\Tim\Desktop>java -jar launcher.jar
Ran
关于java - 启动外部 JAR 文件需要什么,例如 Minecraft 启动器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8103256/
Ubuntu的启动器,相当于win系统的任务栏,有的同学习惯了隐藏,因为这可以节省大量的显示空间,特别是多浏览器并列的情况下,这点空间显示很重要,但更多的是个人习惯,下面图文说一下Ubuntu的启动
在我的 Mac 上,我尝试在 Python Launcher 中默认打开一个 Python 脚本。 我左键单击脚本并选择“打开方式”,然后选择启动器。每次我执行此操作时,都会弹出Terminal,启动
我创建了一个用作启动器的应用程序。在该应用程序中,我打开了各种其他应用程序。在该应用程序中,我想清除其他应用程序的所有数据(即登录详细信息、搜索历史记录),单击按钮即可删除。 PackageManag
我用 C# 编写了一个可移植程序,它具有某些依赖项(.NET Framework、Visual C++ 可再发行版等),可以在 Windows XP SP3 及更高版本上运行。 正因为如此,该程序需要
我的目标是将我的应用程序设置为华为设备上的默认启动器。 1 - 说明: 1.1 - 当前情况: 我已经能够: 检查我的应用是否是默认启动器 显示“启动器选择器”(带有“使用一次”/“始终”选项) 这一
我正在构建一个 Android 启动器,但在尝试将已安装的应用程序添加到 GridView 时不断崩溃。 我正在尝试在 GridView 中添加已安装应用程序的网格。 我的 GridView 代码是
启动器 Activity 未启动,在 Android Studio 中按下“运行”按钮时会崩溃。虽然那里没有太多代码,但仍然如此。我已将 logcat 粘贴到其下方,将我带到 setContentVi
我最近为 LWJGL 程序创建了一个启动器,它下载 LWJGL JAR 和 native 、Slick JAR 以及该程序的主 JAR(所有这些都可以在全局变量中配置),并且我想分发它,以便其他人开发
我正在为 Android 开发主屏幕启动器应用程序。 现在,如果用户已经在主屏幕上, 当用户按下主页按钮时,我想要一个自定义操作。 我知道一些其他的启动器,可以覆盖主页按钮, 例如 Go Launch
我想使用我正在使用的普通应用程序作为启动器,因为它是唯一在设备上运行的应用程序。我必须向我的应用添加什么? 谢谢,雅尼克 最佳答案 使用这个 intent 过滤器:
假设有两个 Activity : 1. Activity A(启动器 Activity ) 2. Activity B 当从 Activity A启动 Activity B时,我完成了 Activit
我正在开发一个 Android 业务应用程序,它将托管在私有(private) channel 上。我们想使用自动更新应用程序,问题是: 这是一个 laucher(安装后设置为默认值) 有kiosk功
历史上一直存在“如何在没有主方法的情况下启动应用程序”问题,大多数问题的表述都是“你不能”。我注意到现在只需扩展 Application 即可启动 JavaFX 应用程序。我一直在使用类似于 Appl
“如何在没有 main 方法的情况下启动应用程序”问题的历史一直存在,大多数都是“你不能”这样的问题。我注意到现在如何通过扩展 Application 即可启动 JavaFX 应用程序。我一直在使用类
我想学习自定义 android 启动器,我不知道如何开始,你能给我一些建议,一些博客链接或其他示例等等。 最佳答案 最好的办法是先查看 Google 提供的示例启动器。您可以在 SDK 文件夹中找到它
我只是在制作一个演示应用程序,我需要为启动器 activity 和应用程序名称的标签设置不同的文本。 当我将启动器 Activity 标签名称设置为 Login 时,它会显示相同的应用程序名称。是否可
我正在编写 angular 2 应用程序并尝试使用 phantomJS 启动器在 Gitlab CI 上设置测试。在所有测试通过后,确定 phantomJS 启动器将永远保持事件状态(http://i
如果您要安装的主屏幕应用程序不允许您访问系统设置屏幕(转到管理应用程序),也不允许您启动应用程序(例如市场应用程序或第 3 方安装/unistallers),有没有办法卸载这样的应用程序? 我知道 A
我遇到了这个问题。我创建了一个新的 xml 布局(启动画面)并在 list 中将其设置为 Launcher 类别。我之前做过很多次,但以前从未发生过。 当 MainActivity 是 LAUNCHE
我想在我的 JupyterLab Launcher 中添加一些自定义内容。这是新用户看到的第一个页面,我想告诉他们这个环境的细节和内容的链接。有点像这样: Launcher's code很简单,我可以
我是一名优秀的程序员,十分优秀!