有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

maven Java将从命令行编译,但不会从NetBeans编译

这个Java类将从命令行编译,但不是从NetBeans编译。这是答案。java文件内容:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ripplesoftware.sitereviewer;

import com.trolltech.qt.gui.QApplication;
import com.trolltech.qt.core.QTextCodec;
import com.trolltech.qt.gui.QLabel;
import com.trolltech.qt.gui.QMainWindow;
import com.trolltech.qt.gui.QVBoxLayout;
import com.trolltech.qt.gui.QWidget;
import com.trolltech.qt.gui.QPushButton;
import com.trolltech.qt.gui.QTabWidget;

/**
 *
 * @author development
 */
public class siteReviewer {

    public static void main(String[] args){
      QApplication.initialize(args);
      QTextCodec.setCodecForCStrings(QTextCodec.codecForName("UTF-8"));
      QTextCodec.setCodecForLocale(QTextCodec.codecForName("UTF-8"));

      QMainWindow mainWindow = new QMainWindow();
      /* Set main window */
      mainWindow.setWindowTitle("RSC Site Reviewer");
      mainWindow.setFixedSize(600,800);
      mainWindow.setVisible(true);
      /* Set Layout */
      QVBoxLayout vBoxLayout = new QVBoxLayout();
      vBoxLayout.setContentsMargins(0, 0, 0, 0);
      QWidget mainWidget = new QWidget();
      mainWidget.setFixedSize(600,800);
      mainWidget.setVisible(true);
      mainWidget.setLayout(vBoxLayout);
      mainWindow.setCentralWidget(mainWidget);
      /*  */
      /* Setup tab */
      QTabWidget tabWidget = new QTabWidget(mainWidget);
      tabWidget.setDocumentMode(false);
      QWidget tab = new QWidget();
      tabWidget.addTab(tab, "Tab 1 with lots of words");
      QWidget tab2 = new QWidget();
      tabWidget.addTab(tab2, "Tab 2");

      QPushButton hello = new QPushButton("Quit");
      hello.resize(120, 40);
      hello.show();
      vBoxLayout.addWidget(hello);

      QApplication.execStatic();

    }

}

以下是我如何从命令行编译:

$ javac -cp qtjambi-4.8.6.jar:qtjambi-native-macosx-gcc-4.8.6.jar siteReviewer.java
$ java -XstartOnFirstThread -cp qtjambi-4.8.6.jar:qtjambi-native-macosx-gcc-4.8.6.jar siteReviewer.java

工作正常,windows会弹出预期组件

但是,在使用NetBeans Maven项目编译相同的代码时:

--- exec-maven-plugin:3.0.0:exec (default-cli) @ SiteReviewer ---
Error: Unable to initialize main class com.ripplesoftware.sitereviewer.siteReviewerApp
Caused by: java.lang.NoClassDefFoundError: com/trolltech/qt/gui/QLayout
Command execution failed.

这是pom。xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.ripplesoftware</groupId>
    <artifactId>SiteReviewer</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>16</maven.compiler.source>
        <maven.compiler.target>16</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.trolltech.qt</groupId>
            <artifactId>qtjambi</artifactId>
            <version>4.8.6</version>
            <scope>system</scope>
            <systemPath>/Users/${USER}/.m2/dependencies/qtjambi-4.8.6.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>com.trolltech.qt</groupId>
            <artifactId>qtjambi-native-macosx-gcc</artifactId>
            <version>4.8.6</version>
            <scope>system</scope>
            <systemPath>/Users/${USER}/.m2/dependencies/qtjambi-native-macosx-gcc-4.8.6.jar</systemPath>
        </dependency>
    </dependencies>
</project>

我很困惑,因为我没有调用类QLayout,代码可以从命令行编译。我相信import语句是可以的,因为它之前一直在抱怨import com.trolltech.qt没有找到


共 (0) 个答案