8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

gnome shell 扩展中出现“参数‘域’的预期类型字符串,但类型未定义”错误

Harley 2月前

58 0

我正在尝试使用本指南中的代码运行 gnome 扩展 https://gjs.guide/extensions/upgrading/legacy-documentation.html#extensionUbuntu 22.04、GNOME 42.9、waylandcontents 扩展...

我正在尝试使用本指南中的代码运行 gnome 扩展 https://gjs.guide/extensions/upgrading/legacy-documentation.html#extension Ubuntu 22.04、GNOME 42.9、wayland

extension.js 的内容(从上面的链接复制):

const St = imports.gi.St;

const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;

const {
gettext: _,
} = ExtensionUtils;


class Extension {
enable() {
    // Create a panel button
    this._indicator = new PanelMenu.Button(0.0, Me.metadata.name, false);

    // Add an icon
    const icon = new St.Icon({
        icon_name: 'face-laugh-symbolic',
        style_class: 'system-status-icon',
    });
    this._indicator.add_child(icon);

    // Add the indicator to the panel
    Main.panel.addToStatusArea(Me.metadata.uuid, this._indicator);

    // Add a menu item to open the preferences window
    this._indicator.menu.addAction(_('Preferences'),
        () => ExtensionUtils.openPrefs());

    this._count = 0;
}

disable() {
    if (this._indicator) {
        this._indicator.destroy();
        this._indicator = null;
    }
}
}


function init() {
ExtensionUtils.initTranslations();

return new Extension();
}

metadata.json的内容:

{
"uuid": "[email protected]",
"name": "Example Extension",
"description": "An example extension",
"shell-version": [ "42.9" ],
"url": "https://gjs.guide/extensions"
}

错误:

enter image description here

帖子版权声明 1、本帖标题:gnome shell 扩展中出现“参数‘域’的预期类型字符串,但类型未定义”错误
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Harley在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我认为问题出在这一行:

    ExecStart=/usr/lib/jvm/java-17-openjdk-amd64/bin/java 
              -jar /clinic/spring-petclinic/target/*.jar
    

    (为了易读,我把它拆分了。)

    让我们开始吧:

    java -jar /clinic/spring-petclinic/target/*.jar
    

    -jar 选项需要一个 JAR 文件。但从表面上看,它 * 可以扩展为多个 JAR 的路径名。这行不通。第二个和后续 JAR作为命令行参数传递;即在 \'arg list\' 中。而且它们不会在类路径上。

    此外,如果您的应用程序确实由多个 JAR 文件组成,则该 -jar 选项不是运行它的正确方法。相反,您需要指定类路径(例如使用参数 -cp )并提供入口点类名。它看起来像这样:

    java -cp /somepath/part1.jar:/somepath/part2.jar com.example.FooCommand ...
    

    (也可以在类路径中使用通配符,但是 Java 有特定的语法来执行此操作。请查看 java 您的 Java 版本的命令手册条目。)


    但实际解释比这更简单。那里的文件是 systemd 单元配置文件;请参阅 https://www.freedesktop.org/software/systemd/man/255/systemd.service.html 。手册条目解释说 ExecStart 字符串不是完整的 shell 语法。支持 shell 语法的某些方面,但 * 不支持通配符。(有关 systemd.service 详细信息,请参阅手册条目。)

    因此...您 ExecStart 指定的是 * 路径名中包含文字字符的 JAR 文件。显然,它不存在; java 命令错误消息告诉您这一点。

返回
作者最近主题: