任何人都知道为什么这个命令在Windows中正常工作但在Linux中我得到一个ClassNotFoundException game.ui.Main
java -cp ".;lib/*" game.ui.Main -Xms64m -Xmx128m
Run Code Online (Sandbox Code Playgroud)
我的文件夹结构如下所示:lib/ - Jars游戏/ - 类文件
这是最新的Java 6.
我应该在Eclipse项目中添加log4j.properties文件以使其按预期工作?
我有一个应用程序,我正在尝试将其包装到jar中以便于部署.当作为一组可从CLASSPATH访问的类运行时,应用程序编译并运行正常(在Windows cmd窗口中).但是当我在我的类中运行并尝试在同一cmd窗口中使用java 1.6运行它时,我开始获得异常:
C:\dev\myapp\src\common\datagen>C:/apps/jdk1.6.0_07/bin/java.exe -classpath C:\myapp\libs\commons -logging-1.1.jar -server -jar DataGen.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at com.example.myapp.fomc.common.datagen.DataGenerationTest.<clinit>(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
... 1 more
Run Code Online (Sandbox Code Playgroud)
有趣的是,违规的LogFactory似乎是在commons-logging-1.1.jar中,它位于指定的类路径中.jar文件(是的,它确实存在):
C:\dev\myapp\src\common\datagen>dir C:\myapp\libs\commons-logging-1.1.jar
Volume in drive C is Local Disk
Volume Serial Number is ECCD-A6A7
Directory of C:\myapp\libs
12/11/2007 11:46 AM 52,915 commons-logging-1.1.jar
1 File(s) 52,915 bytes
0 Dir(s) 10,956,947,456 bytes free
Run Code Online (Sandbox Code Playgroud)
commons-logging-1.1.jar文件的内容:
C:\dev\myapp\src\common\datagen>jar -tf C:\myapp\libs\commons-logging-1.1.jar
META-INF/
META-INF/MANIFEST.MF
org/ …Run Code Online (Sandbox Code Playgroud) 我有一个Maven项目,它生成一个jar文件并将所有依赖项复制到target/lib文件夹.我想在客户端的机器(windows)上执行这个项目.所以,我复制myproject.jar到C:\xyz文件夹和所有依赖项到C:\xyz\lib文件夹.如何从客户端的命令提示符执行此项目?我试图java -cp lib\*.jar -jar myproject.jar从C:\xyz文件夹使用,但它抛出以下错误.
Exception in thread "main" java.lang.NoClassDefFoundError: lib\commons-codec-1/3/jar
Caused by: java.lang.ClassNotFoundException: lib\commons-codec-1.3.jar
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: lib\commons-codec-1.3.jar. Program will exit.
Run Code Online (Sandbox Code Playgroud)
我想如果我在classpath(如java -cp lib\dep1.jar;dep2.jar)中指定所有依赖项,它将解决问题,但我不想这样做,因为我已经有40个库,并且它可能会在将来的版本中增长.有一个更好的方法吗?
该WEB-INF文件夹CLASSPATH是Java Web应用程序的吗?
正如本文档所述,"例如,如果将此jndi.properties文件放在类路径上",但如果我使用Eclipse,如何将.properties文件放在我的类路径上?
我遇到一个问题,IntelliJ 13.1.4在运行单元测试时无法ServiceLoader在src/test/resources我的模块目录中找到文件.
请在回答之前注意我已完成以下所有操作:
gradle test单元测试运行正常.src/test/resources目录被标记为测试资源目录.(见下面的截图.)build/classes/test/和build/classes/java目录,但也build/resources/test/没有build/resources/main/.关于还有什么可能导致IntelliJ在这里失败的任何想法?
我的模块配置的屏幕截图,显示"测试资源文件夹"设置.

我应该检查我的.project和.classpath文件吗?
我的朋友告诉我,我应该只检查.java文件和build.xml以保证可移植性.他说".classpath会让你在不同环境下的可移植性降低得多..project完全是你当地的日食设置"
我同意他,但部分同意.
- 不检入.project文件会降低我的开发效率(我不能简单地从目录"导入"项目代码)
- 如果我的build.xml是小心写的,那么不检入.classpath文件似乎对我(?)没问题.
有人想在这里分享他们的经历吗?
运行命令时如
mvn dependency:build-classpath
Run Code Online (Sandbox Code Playgroud)
要么
mvn exec:java
Run Code Online (Sandbox Code Playgroud)
Maven无法解析我的某个模块与另一个模块的依赖关系.
[错误]无法在项目解析器-app上执行目标:无法解析项目project_group的依赖项:A:jar:0.1-SNAPSHOT:找不到工件project_group:B:jar:0.1-SNAPSHOT
项目结构如下:
/pom.xml
/A/pom.xml
/B/pom.xml
Run Code Online (Sandbox Code Playgroud)
父母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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>project_group</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>0.1-SNAPSHOT</version>
<name>parent</name>
<modules>
<module>A</module>
<module>B</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
第一个子模块(未能解决依赖关系的模块):
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>parent_group</groupId>
<artifactId>parent</artifactId>
<version>0.1-SNAPSHOT</version>
</parent>
<artifactId>A</artifactId>
<packaging>jar</packaging>
<name>A</name>
<dependencies>
<dependency>
<groupId>parent_group</groupId>
<artifactId>B</artifactId>
<version>0.1-SNAPSHOT</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
第二个子模块(依赖项):
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>parent_group</groupId>
<artifactId>parent</artifactId>
<version>0.1-SNAPSHOT</version>
</parent>
<artifactId>B</artifactId>
<packaging>jar</packaging>
<name>B</name>
Run Code Online (Sandbox Code Playgroud) 我有一个groovy脚本需要jar中的库.如何将其添加到类路径?我希望脚本可执行,所以我#!/usr/bin/env groovy在脚本的顶部使用.