小编Gab*_*beV的帖子

限制由javapackager添加的模块

我试图通过限制它包含的模块来减少我的应用程序的大小.我已经为我的运行时使用了这个jlink.然而,当我运行javapackager使用--add-modules,并--limit-modules选择用逗号分隔的相同的小套我用于运行时模块的列表,它坚持将所有模块的反正.它似乎不想尊重我给它的选项.如何获得该工具来限制它添加到我的应用程序包中的模块?

"Adding modules: [java.base, java.desktop, java.naming, java.sql, java.xml, java.logging, 
    java.management, java.scripting, java.compiler, java.rmi, java.activation, jdk.charsets, jdk.xml.dom, 
    java.datatransfer, jdk.httpserver, javafx.base, java.security.sasl, jdk.zipfs, jdk.crypto.ec, 
    jdk.management.agent, java.sql.rowset, javafx.swing, jdk.jsobject, jdk.sctp, java.smartcardio, 
    jdk.unsupported, jdk.scripting.nashorn, java.security.jgss, javafx.graphics, javafx.fxml, jdk.dynalink, 
    javafx.media, jdk.accessibility, jdk.security.jgss, javafx.web, java.xml.crypto, jdk.jfr, jdk.packager.services, jdk.net, javafx.controls, 
    java.prefs, jdk.naming.rmi, jdk.jdwp.agent, java.instrument, jdk.management, 
    jdk.security.auth, java.management.rmi, jdk.naming.dns, jdk.localedata] to runtime image."
outputDir = ...
modulePath = [/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/jmods]
addModules = [java.base, java.desktop, java.naming, java.sql, java.xml, java.logging, java.management, java.scripting, java.compiler, …
Run Code Online (Sandbox Code Playgroud)

java java-9 javapackager java-module

8
推荐指数
1
解决办法
1033
查看次数

如何使用javapackager查找自动模块

我正在捆绑一个app,javapackager其中主jar是一个带有module-info.class的模块,但它依赖于许多其他普通旧jar的jar,所以我把它们称为module-info.java中的自动模块.然而,javapackager抱怨无法找到它们.如何让它找到自动模块的jar文件?

Exception: jdk.tools.jlink.plugin.PluginException: java.lang.module.FindException: Module rcf not found, required by com.username.commander.ui
Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "Mac Application Image" (mac.app) failed to produce a bundle.
    at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:374)
    at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:348)
    at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:496)
Run Code Online (Sandbox Code Playgroud)

我已经尝试指定模块路径(第一个dir只有主模块jar,第二个dir有所有非模块jar):

/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin/javapackager -deploy -native image \
-name Commander -title Commander -vendor "username" \
--module-path /Users/username/Dropbox/coding/commander/Commander-java/moduleJars:/Users/username/Dropbox/coding/commander/Commander-java/packageJars \
--module com.username.commander.ui/com.username.commander.ui.AppWindow \
-srcdir /Users/username/Dropbox/coding/commander/Commander-java/packageJars \
-outdir /Users/username/Dropbox/coding/commander/Commander-java/target \
-outfile Commander \
-Bruntime=target/jre-9.0.1 -Bicon=src/main/resources/icons/commander.icns \
-BappVersion=1.0 \
-Bmac.CFBundleIdentifier=com.username.Commander \
--add-modules java.base,java.desktop,java.naming,java.sql,java.xml,java.logging,java.management,java.scripting,java.compiler,java.rmi,java.activation \
--limit-modules java.base,java.desktop,java.naming,java.sql,java.xml,java.logging,java.management,java.scripting,java.compiler,java.rmi,java.activation \
-nosign -v
Run Code Online (Sandbox Code Playgroud)

java java-9 javapackager

5
推荐指数
2
解决办法
1433
查看次数

Swift Github Action CocoaPods 构建失败并显示“未找到框架 Pods_iosapp”

我有一个简单的工作流定义来进行 Xcode 工作区构建和测试:

name: Swift iOS application
on: pull_request
jobs:
  test:
    name: Test
    runs-on: macOS-latest
    strategy:
        matrix:
          destination: ['platform=iOS Simulator,id=DEC5E859-67C9-4939-87A5-E749D824E541', 'platform=iOS Simulator,id=458AD46E-58ED-4016-875A-70965C6EC869']
    steps:
      - name: Checkout
        uses: actions/checkout@master
      - name: Build and Test
        run: |
          ls -al
          pod install --repo-update --clean-install
          ls -al
          echo "destination=${destination}"
          xcodebuild clean test -workspace iosapp.xcworkspace -scheme iosapp -destination "${destination}" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=NO
        env:
         destination: ${{ matrix.destination }}

Run Code Online (Sandbox Code Playgroud)

build 命令在我的笔记本电脑上本地成功,但在 Github Actions 运行时失败。这是更多的错误上下文:

Ditto /Users/runner/Library/Developer/Xcode/DerivedData/iosapp-emrlpxjejtcsbjdrjgmowfxebepf/Build/Products/Debug-iphonesimulator/iosapp.swiftmodule/i386-apple-ios-simulator.swiftdoc /Users/runner/Library/Developer/Xcode/DerivedData/iosapp-emrlpxjejtcsbjdrjgmowfxebepf/Build/Intermediates.noindex/iosapp.build/Debug-iphonesimulator/iosapp.build/Objects-normal/i386/iosapp.swiftdoc (in target 'iosapp' from project 'iosapp')
    cd /Users/runner/runners/2.165.2/work/ios-app/ios-app
    /usr/bin/ditto -rsrc …
Run Code Online (Sandbox Code Playgroud)

ios cocoapods swift github-actions

5
推荐指数
1
解决办法
560
查看次数

如何防止我的 macOS 应用程序同时运行多个实例?

我有一个应用程序,允许用户使用启动器应用程序通过首选项启用“登录时打开”(请参阅​​ https://en.atjason.com/Cocoa/SwiftCocoa_Auto%20Launch%20at%20Login.html)。但是,当我选中该框以启用它时,启动器应用程序将打开我的应用程序的另一个实例。

macos user-interface xcode xcode9

4
推荐指数
1
解决办法
2371
查看次数