将类路径添加到netbeans maven项目

Dav*_*ave 4 java netbeans maven

我有一个java项目,它使用.properties文件进行配置.在服务器上,启动时,我将类路径设置为包含一个包含所有属性文件的文件夹.在我的本地计算机上,我想指向另一个文件夹.

我希望添加到类路径,理想情况下,所有项目,但添加到每个项目也没关系.我已经尝试更改Run > VM Options为包含类路径,但是通过该更改它找不到主类,我得到了java.lang.NoClassDefFoundError.我也尝试直接更改nbactions.xml以将类路径设置为-classpath ~\MyFolder\;%classpath,但这有同样的问题.

为了增加难度,服务器在我的本地机器运行Windows时运行linux.

gav*_*koa 10

我长期坚持主题启动问题.我的目标 - 在项目根目录中将配置文件用于调试目的并将classpath扩展到${basedir},所以这段代码:

String appConfigLocation = System.getProperty("config.location");
if (appConfigLocation == null) {
    logger.error("System property 'config.location' is not set...");
    System.exit(1);
}
InputStream appConfigStream = Main.class.getClassLoader().getResourceAsStream(appConfigLocation);
if (appConfigStream == null) {
    logger.error("Can't find resource {} in classpath, fix 'config.location'...", appConfigLocation);
    System.exit(1);
}
Properties appProps = new Properties();
try {
    appProps.load(appConfigStream);
} catch (IOException ex) {
    System.out.println("IO error during loading of {}...", appConfigLocation);
    System.exit(1);
}
Run Code Online (Sandbox Code Playgroud)

从中读取配置${basedir}.我喜欢它,而不是把它们src/main/resources.

检查ExecMojo.javav1.2.1的来源http://grepcode.com/file/repo1.maven.org/maven2/org.codehaus.mojo/exec-maven-plugin/1.2.1/org/codehaus/mojo/exec/ExecMojo .java?av = f:

if ( CLASSPATH_TOKEN.equals( args[i] ) ) {
    commandArguments.add( computeClasspathString( null ) );
}
Run Code Online (Sandbox Code Playgroud)

和v1.3.2 http://grepcode.com/file/repo1.maven.org/maven2/org.codehaus.mojo/exec-maven-plugin/1.3.2/org/codehaus/mojo/exec/ExecMojo.java ?av = f:

if ( args[i].contains( CLASSPATH_TOKEN ) ) {
     commandArguments.add( args[i].replace( CLASSPATH_TOKEN, 
                           computeClasspathString( null ) ) );
}
Run Code Online (Sandbox Code Playgroud)

所以更新NB配置执行目标到新版本:

process-classes org.codehaus.mojo:exec-maven-plugin:1.3.2:exec
Run Code Online (Sandbox Code Playgroud)

-classpathexec.argsparams中使用复杂的args :

exec.args=-classpath %classpath:.:"${basedir}" \
    -Dconfig.location=app.properties \
    -Dlogback.configurationFile=logback.xml \
    ${packageClassName}
Run Code Online (Sandbox Code Playgroud)

修复执行此类行为所需的任何操作:

在此输入图像描述

也可以看看:

  • Jeyendran发布了一个评论作为答案(可能是由于没有足够的代表添加评论),我将在这里重现,以防它对未来的访问者有用:只有改变我必须做的是替换类路径分隔符":"by ";" 在"-classpath"参数中,因为我在Windows上运行.对于Unix/Linux/Mac,如@gavenkoa所描述的":"将完美地运行. (2认同)

tom*_*zyk 5

嗨,我有一个类似的需要,为 NetBeans7.4 提供一个类路径到一个带有 Maven 依赖项的驱动程序的 jar,例如c:\Program Files\Java\jdk1.7.0_25\db\lib\derby.jar在名为 MyProject 的 Java Maven 项目中。
正如您所考虑的那样Run > VM Options,我建议如下:
1) 右键单击​​ MyProject 以打开项目属性
2) 在“项目属性”弹出窗口中,选择“操作”
3) 在“操作”中找到“运行 pproject” ' 并选择它
4) 在“设置属性”文本框中
exec.args=-cp %classpath;.;"c:\Program Files\Java\jdk1.7.0_25\db\lib\derby.jar" biz.letsweb.derbyconnect.App exec.executable=java exec.workingdir=c:\Users\Tomasz\Documents\NetBeansProjects\DerbyConnect\target\classes
编辑输入 或者以类比方式编辑 nbactions.xml。完成此操作后,我只需按绿色箭头即可在 NetBeans 中运行该项目。


mkl*_*int 0

将属性包含为 怎么样?而您在本地使用的那些仅在 a 中并在本地计算机上激活该配置文件?