相关疑难解决方法(0)

如何使用命令行工具为Mac OS X创建漂亮的DMG?

我需要为Mac应用程序创建一个不错的安装程序.我希望它是一个磁盘映像(DMG),具有预定义的大小,布局和背景图像.

我需要在脚本中以编程方式执行此操作,以集成到现有构建系统中(实际上更多是打包系统,因为它只创建安装程序.构建是单独完成的).

我已经使用"hdiutil"完成了DMG创建,我还没有发现如何制作图标布局并指定背景位图.

macos scripting installer dmg

209
推荐指数
10
解决办法
10万
查看次数

Mac 10.8上的Eclipse - 安装了1.7.0 JRE/JDK,但Eclipse无法启动

  • 已安装Oracle的Java SE 1.7.0u10及其安装程序包

  • 下载并解压缩的Eclipse Juno(4.2.1)

  • 双击Eclipse purple图标并获取OS X警报提示,并显示错误消息:

要打开"Eclipse",您需要Java SE 6运行时.你想现在安装一个吗?

  • (在终端)which java-/usr/bin/java

  • ls -l /usr/bin/java - /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

  • (在Finder中)双击eclipse别名(在解压缩下载时包含) - 终端启动,/Applications/Eclipse/Eclipse.app/Contents/MacOS/eclipse ; exit ;Exclipse启动时没有OS X警报提示.

我已经尝试修改Eclipse应用程序包plist以将-vm键指向/System/Library/Frameworks/JavaVM.frameworks/Versions/Current/Commands/java,但我觉得我可能不应该这样做. `

我想知道如何通过双击Application包来启动Eclipse.让我烦恼的是一件小事......:o)

java eclipse macos

25
推荐指数
3
解决办法
6万
查看次数

使用JarBundler将Java转换为MacOSX的.app文件

我所要做的就是将一个简单的java程序转换为macOSX .app文件,这样我就可以将它作为一个简单的可执行文件分发.

我到处都读过,每个人都说同样的话:

  1. 使用Xcode - 据我所知,Xcode不再支持Java Build
  2. 使用Jar Bundler - 所有教程似乎都已过时,但它不起作用.当我运行:java -jar jarbundler-2.0.0.jar

    控制台返回"jarbundler-2.0.0.jar中没有主要清单属性"

    如果我是对的,那么打包jar文件的人会失败吗?但我试过从其他网站和其他版本下载它,但我得到了相同的东西.

  3. 他们说你可以自己创建目录和文件,然后将你的文件夹重命名为.app,然后对它运行一个命令,但这很复杂,因为我不确切知道如何创建一个info.plist文件......如果你想这样做,我到目前为止找到的最好的网站就是这个:OSX的Java部署选项

我已将我的代码编译成.jar文件,我有一个图标和所有内容,我需要做的就是以某种方式将其打包到.app文件中.

我在这里先向您的帮助表示感谢!

编辑:我明白了!经过7或8个小时的搜索和阅读后,它可以工作.因为我是新手,所以我将发布我所学到的所有东西来拯救那些经历过同样问题的人.我放弃了自己做的方法,然后回到了JarBundler.如果其他人正在读这个并且他们对ANT一无所知,那就是我所做的:下载JarBundler,我从这里得到了我的:Mac OS X JarBundler ANT任务并按照其中的说明操作.

下载时,请将jarbundler-2.2.0.jar文件放在此处:

的/ usr /共享/蚂蚁/ lib中

您可能必须运行命令来移动它,例如:

sudo mv jarbundler-2.2.0.jar~ /../../ usr/share/ant/lib/jarbundler-2.2.0.jar

就像我说的那样,我还在学习,但这对我有用.

确保您移动合适jarbundler,这是我遇到了问题,我把整个文件夹,而不是内部.jar文件,所以一定要移动拉链你下载的是这样的文件夹内的.jar,而不是整个事情,否则当你去构建它时,你会得到一个错误,如错误:taskdef class net.sourceforge.jarbundler.JarBundler找不到.

然后你需要将你的代码编译成一个.jar文件(有两种类型,一种是像.zip,另一种是可执行文件)你想要一个普通的JAR文件,不是可执行的,所以要做到这一点你首先需要编译您的代码获取.class文件,然后打开命令提示符并按照此处的说明操作:创建一个Jar文件该命令将如下所示:

jar cf myName.jar*.class

获得jar文件后,需要在同一文件夹中创建.xml文件,并且需要将其命名为build.xml.使用文本编辑器编辑它.按照上面链接中的说明创建它.它看起来像这样:

//build.xml

<project name="MyProject">

<taskdef name="jarbundler"
classname="net.sourceforge.jarbundler.JarBundler" />

<target name="bundle">

<jarbundler dir="release"
        name="Apollo's Image Editor"
        mainclass="ImageEditorGUI" 
        jar="ApolloIE.jar"
        icon="Aperture.icns" />

</target>

</project>
Run Code Online (Sandbox Code Playgroud)

从那里(顺便说一下,我使用的是Macbook Pro)你所要做的就是从该文件夹运行一个命令行:

蚂蚁束

它应该在名为release的文件夹中创建一个.app文件.总结一下:你需要的只是同一个文件夹中的.jar文件和build.xml文件,然后运行命令:ant bundle(或者你在build.xml文件中命名为target的任何东西,我把它命名为bundle)

祝你好运,希望这有助于那里的任何人.

如果有人想知道,我拿了由JarBundler生成的Info.plist并将其放入我正在制作的目录中并且它有效!所以这就是问题,我只是不知道如何正确格式化......这里是:Info.plist

java macos jar executable-jar

13
推荐指数
1
解决办法
1万
查看次数

捆绑Java 7 .jar for Mac

我创建了一个需要Java 7的.jar.我有Java 7(JDK和JRE),我可以双击运行.jar.但是,我想将其打包成一个应用程序.

我尝试过:使用Apple的Jar Bundler工具,我成功创建了一个应用程序; 然而,当我运行它时,它会很快出现并在码头中消失.当我JavaApplicationStub从终端运行内部文件时,我得到:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/lcmmun/kiosk/gui/Kiosk : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at apple.launcher.LaunchRunner.loadMainMethod(LaunchRunner.java:56)
    at apple.launcher.LaunchRunner.run(LaunchRunner.java:112)
    at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:51)
    at apple.launcher.JavaApplicationLauncher.launch(JavaApplicationLauncher.java:52)
Run Code Online (Sandbox Code Playgroud)

根据" unsupportedclassversionerror不支持major.minor版本51.0无法加载类 ",意味着我没有安装Java 7.但是我愿意.

所以我的假设是JavaApplicationStubJava 7不兼容.

我也听说过要完成同样任务的ANT任务,但它似乎太复杂了,我不知道如何使用ANT.如果这确实是解决方案,我会很乐意学习.

编辑:我现在也尝试过Eclipse的Export> Other> Mac OS Application Bundle.这也失败了.

我正在运行10.8 Mountain …

java macos bundle package

10
推荐指数
1
解决办法
8687
查看次数

Mac OS X如何确定应用程序需要Java?

我负责部署在包括OS X在内的多个平台上的Java应用程序.在最新版本的应用程序中,我们为OS X分配了两个独立的软件包 - 一个使用Apple提供的JavaApplicationStub,另一个包含捆绑的JDK 7并使用内部生成的启动器(Oracle的JavaAppLauncher的修改).

问题是,对于后一个捆绑包,如果您尝试运行该应用程序,Mac OS X仍然坚持要安装Java 6.特别是消息说:

"要打开(应用程序),你需要一个Java SE 6运行时.你想现在安装吗?"

如果不安装Java SE 6,则无法运行该应用程序,尽管捆绑了JDK 7(如果安装了Java 6,它仍然使用捆绑的Java 7运行).

我正在努力弄清楚OS X如何决定应用程序需要Java?我尝试在Info.plist文件中重命名'Java'字典,并在Resources文件夹中重命名Java子文件夹,但没有成功.有没有人有任何想法?当然可以在不需要安装系统JDK的情况下使用捆绑的JDK运行应用程序吗?

java macos

10
推荐指数
1
解决办法
1528
查看次数

如何在自定义位置的mac上安装java 7?

我想默默地在mac上安装java 7.我无法找到相同的任何文档/链接.
我也不想在/ Library中.是否可以在任何自定义位置安装相同的内容.
我是非常新的mac任何帮助都非常感谢.

java macos java-7

7
推荐指数
3
解决办法
6153
查看次数

Spotlight for help for macOS上的本地化Java Swing应用程序

在macOS上的Java Swing应用程序中,当使用macOS 外观和屏幕菜单栏时,Cocoa会自动将名为Spotlight for Help的搜索字段绑定到框架菜单栏中标有"Help"的第一个菜单.

带搜索功能的帮助菜单

System.setProperty("apple.laf.useScreenMenuBar", "true");

try {
  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
  e.printStackTrace();
}

JFrame frame = new JFrame();
JMenuBar menuBar = new JMenuBar();
JMenu helpMenu = new JMenu("Help");
menuBar.add(helpMenu);
frame.setJMenuBar(menuBar);
Run Code Online (Sandbox Code Playgroud)

但是我的应用程序已本地化,英语字符串"帮助"在其他语言环境中转换为

  • 法语中的" 助手 ";
  • 意大利语中的" Aiuto ";
  • 西班牙语中的" Ayuda ";
  • 葡萄牙语中的" Ajuda ";
  • 德语中的" Hilfe ";
  • " Hulp "荷兰语;
  • 瑞典语中的" Hjälp ".

在这些情况下,Cocoa 不会向帮助菜单提供Spotlight for Help字段.

没有搜索功能的帮助菜单

我怎么还能得到这个搜索字段?

java macos swing localization spotlight

6
推荐指数
1
解决办法
274
查看次数