相关疑难解决方法(0)

从命令行在包中运行java

我已阅读以前发布的问题.有些是模糊的,没有一个解决我的问题,所以我不得不再问.

我有两个简单的课程,

package One;
import One.Inner.MyFrame;
public class test
{
    public static void main(String args[])
    {
        MyFrame f= new MyFrame();
    }
}
Run Code Online (Sandbox Code Playgroud)

而另一类是,

package One.Inner;
import java.awt.*;
import javax.swing.*;

public class MyFrame extends JFrame
{
    public MyFrame()
    {
        setPreferredSize(new Dimension(400,560));
        setVisible(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

我在Windows cmd中的基本文件夹"基本".我编译使用

basic> javac *.java -d .
Run Code Online (Sandbox Code Playgroud)

创建文件夹和子文件夹.

cd One
basic\One> java test
Run Code Online (Sandbox Code Playgroud)

这会产生一大堆错误.许多答案旨在指定不起作用的完整路径.我的类在One中,因此指定一个使用-cp也不起作用.

java command-line javac classpath package

29
推荐指数
3
解决办法
8万
查看次数

如何从命令行运行 Java Gradle 项目中的 main 方法?

我有一个 Gradle 项目(例如,MyProject),它有一个 main 方法,我只想用它来运行一个小型 Java 应用程序。比如说,脚本位于一个类和包中,如下所示:

MyScript.Java

package com.car.ant;

import com.3rdparty.library.LibraryException;

public class MyScript {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}
Run Code Online (Sandbox Code Playgroud)

我用 构建项目$ ./gradlew clean build,没问题。我试图通过命令行运行它,但是当我这样做时,我在尝试运行时遇到异常:

$ pwd
~/workspace/MyProject/build/classes/java/main
$ java com.car.ant.MyScript
Exception in thread "main" java.lang.NoClassDefFoundError: com/3rdparty/library/exception/LibraryException
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
        at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
        ... 7 more
Run Code Online (Sandbox Code Playgroud)

该脚本不是应用程序的主要部分,但我只是希望它偶尔运行一次,并且我想弄清楚如何通过命令行运行它。有没有办法在不导入更多库的情况下做到这一点?我见过用一罐子完成的工作,但我想我可以不用一罐子也能做到这一点。

更新:

阅读本文后尝试添加类路径,但现在我收到了不同的错误:

$ java -cp com/3rdparty/library/exception/LibraryException com.car.ant.MyScript
Error: Could not find or load main class com.car.ant.MyScript
Run Code Online (Sandbox Code Playgroud)

java command-line exception main-method gradle

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

我如何需要在powershell中运行maven文件?

我假设需要额外的依赖项,但我不明白到底是什么。我感谢大家的帮助。

我的pom文件是:

<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.spark</groupId>
    <artifactId>spark</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <name>M101J</name>
    <url>http://maven.apache.org</url>

    <dependencies>
        <dependency>
            <groupId>com.sparkjava</groupId>
            <artifactId>spark-core</artifactId>
            <version>1.1.1</version>
        </dependency>

        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.19</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.4</version>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>Spark repository</id>
            <url>http://sparkjava.com/nexus/content/repositories/spark/</url>
        </repository>
    </repositories>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.spark.SparkHomework</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
Run Code Online (Sandbox Code Playgroud)

当我尝试使用命令运行我的项目时:

mvn compile exec:java -Dexec.mainClass=com.spark.SparkHomework
Run Code Online (Sandbox Code Playgroud)

我有这样的问题:

未知的生命周期阶段“.mainClass=com.spark.SparkHomework”。您必须以 : 或 :[:]: 格式指定有效的生命周期阶段或目标。可用的生命周期阶段有:验证、初始化、生成源、处理源、生成资源、处理资源、编译、处理类、生成测试源、处理测试源、生成测试资源、处理-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, …

java powershell maven

2
推荐指数
1
解决办法
3437
查看次数

Maven:使用命令行运行java类文件

我有一个使用 Maven“快速启动”模板构建的 java 项目。结构看起来像

src
  main
    java
      myapp
        HelloWorld.java
Run Code Online (Sandbox Code Playgroud)

HelloWorld.java 被声明在包“myapp”下

在 pom.xml 中,仅包含 junit。

现在,在运行 Maven 编译后,我在下面得到了一个类文件

target
  classes
    myapp
      HelloWorld.class
Run Code Online (Sandbox Code Playgroud)

但在我 cd 到 target/classes/myapp 后,然后执行

java -cp . HelloWorld
Run Code Online (Sandbox Code Playgroud)

我得到 NoClassDefFoundError,我按照如何从命令行执行 java .class 进行操作

我试过

java -cp . myapp.HelloWorld    (myapp is the package)
Run Code Online (Sandbox Code Playgroud)

我仍然得到“无法找到或加载主类”

我的问题是:我使用“-cp .”设置类路径,那么为什么我仍然无法运行该类?和Maven有什么关系吗?

我知道我不需要使用命令行,我只是好奇。

java maven

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