windows无法找到或加载主类java
我的bat文件如下:
java -cp "./lib/*:." TestRunner
当我运行bat文件时,我得到了
Can not load main class TestRunner
在我得到命令之前,比如:
java -cp .\lib\*;. TestRunner
及
java -cp .\lib\*;. com.pkg.TestRunner
同样的错误
帮我理解。我用maven编译了所有源代码,所有存储在目标文件夹target/src/java/main/com/pkg/TestRunner.class
中,所有未打包在jar中的文件都是刚刚编译的,我想运行编译文件集中的文件
也许maven没有指定主类
<?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.pkg</groupId>
<artifactId>automation</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<build>
<directory>target</directory>
<outputDirectory>target/classes</outputDirectory>
<finalName>AUTOMATION-01</finalName>
<testOutputDirectory>target/test-classes</testOutputDirectory>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
</build>
<reporting>
<outputDirectory>target/site</outputDirectory>
</reporting>
<profiles>
<profile>
<id>release-profile</id>
<activation>
<property>
<name>performRelease</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<updateReleaseInfo>true</updateReleaseInfo>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.2.11</version>
</dependency>
</dependencies>
</project>
我的树:
\---target
+---classes
| +---com
| | +---example
| | | \---ru
| | | \---pkg
| | | \---webservices
| | | +---submission
| | | | \---submissionapi
| | | \---synchronisation
| | | \---syncsfdataapi
| | +---module
| | | +---ac
| | | | \---ws
| | | | \---tt
| | | | \---webservice
| | | | \---pc
| | | | \---quoting
| | | | \---quotingapi
| | | \---ws
| | | \---soapheaders
| | \---pkg
| | +---comparation
| | +---filters
| | +---model
| | +---runner
| | +---utils
| | \---ws
| \---data_request
| +---request
| \---responce
\---maven-status
\---maven-compiler-plugin
\---compile
\---default-compile
# 1 楼答案
很简单。加入maven pom。将有关主类和所需LIB的信息放入清单的xml说明。MF:
在执行包之后,您可以使用命令启动应用程序
where project—项目的名称
# 2 楼答案
由于TestRunner位于
com.pkg.runner
包中,因此首先尝试使用以下工具运行它:注意,当您运行
java
命令时,您必须是com
文件夹中的一个以上的目录把结果写在这里
# 3 楼答案
您是否尝试过不使用
:.
,因为这看起来像一个bash syntax,这意味着如果.\lib\*
不存在,那么使用当前目录.
如果你在windows上,我建议删除
:.
并尝试这种变体所有这些都使用相对路径。如果失败,您应该尝试完整路径:
更新:
尝试转置这个例子here