标签: classpath

如何扩展用于'grails run-app'的类路径

我在Config.groovy文件中有以下内容:

grails.config.locations = [ "classpath:env.groovy" ]
Run Code Online (Sandbox Code Playgroud)

现在,我应该在哪里放置"env.groovy",以便在grails run-app中可以在CLASSPATH上使用它?这里的文档非常缺乏.

我可以通过在$ APP_HOME/etc中放置"env.groovy"然后运行来让它在纯命令行上工作:

$ grails -classpath ./etc run-app
Run Code Online (Sandbox Code Playgroud)

这似乎有点hackish,但我可以忍受它...但是,当我使用Grails eclipse插件(STS)启动run-app时,我无法获得任何此类配置:

Unable to load specified config location classpath:env.groovy : class path resource [env.groovy] cannot be opened because it does not exist
Run Code Online (Sandbox Code Playgroud)

我在这里,这里,这里和这里看过相关的帖子,但答案却一直没有实现.

我正在寻找一个基于CLASSPATH的解决方案,它可以在开发模式(命令行和eclipse)中使用'run-app'.我知道如何为我的部署servlet容器设置CLASSPATH,所以这不是问题.

configuration grails classpath sts-springsourcetoolsuite

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

使用自定义SSLSocketFactory时ClassNotFoundException

我创建了一个自定义SSLSocketFactory类并将其设置如下

ldapEnv.put(Context.SECURITY_PROTOCOL, "ssl");
ldapEnv.put(FACTORY_SOCKET, socketFactoryClass);

LdapContext ldapContext = new InitialLdapContext(ldapEnv, null);
Run Code Online (Sandbox Code Playgroud)

它从Eclipse Dev Environment运行时运行正常,并从命令提示符运行它作为Jar文件.但是当我将其包装在服务包装器中并将其作为Windows服务启动时,它不起作用.我得到以下异常,

javax.naming.CommunicationException: 192.168.100.22:636 [Root exception is java.lang.ClassNotFoundException: com/testing/diraccess/service/ActiveDirectory$TestSSLFactory]
at com.sun.jndi.ldap.Connection.<init>(Unknown Source)
at com.sun.jndi.ldap.LdapClient.<init>(Unknown Source)
at com.sun.jndi.ldap.LdapClient.getInstance(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.connect(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.<init>(Unknown Source)
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(Unknown Source)
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(Unknown Source)
at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(Unknown Source)
at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(Unknown Source)
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.ldap.InitialLdapContext.<init>(Unknown Source)

Caused by: java.lang.ClassNotFoundException: com/testing/diraccess/service/ActiveDirectory$TestSSLFactory
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.sun.jndi.ldap.VersionHelper12.loadClass(Unknown Source)
at com.sun.jndi.ldap.Connection.createSocket(Unknown Source)
... 35 more
Run Code Online (Sandbox Code Playgroud)

任何帮助???

java service classpath

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

可执行JAR忽略其自己的Class-Path属性

我使用了Maven中的指令- 如何在jar中添加任意类路径条目以向Class-Path属性添加任意条目.这是我的MANIFEST.MF档案:

Manifest-Version: 1.0
Class-Path: jace-runtime.jar
Main-Class: org.jace.examples.Test
Run Code Online (Sandbox Code Playgroud)

我定义了org.jace.examples.Test,如下所示:

public class Test
{
    public static void main(String[] args)
    {
        System.out.println("classpath: " + System.getProperty("java.class.path"));
        System.out.println("PeerExample: " + Class.forName("org.jace.util.ShutdownHook"));
    }
}
Run Code Online (Sandbox Code Playgroud)

在哪里org.jace.util.ShutdownHook定义jace-runtime.jar.当我调用时,java -jar peer_example1.jar我得到以下输出:

classpath: peer_example1.jar 线程"main"中的异常java.lang.ClassNotFoundException:org.jace.util.ShutdownHook

换句话说,Java正在将可执行JAR文件添加到类路径中但忽略不计Class-Path.如果我调用java -cp jace-runtime.jar;peer_example1.jar org.jace.examples.Test我得到预期的输出:

classpath: jace-runtime.jar;peer_example1.jar

有任何想法吗?

java jar classpath

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

将类路径文件名转换为实际文件名

如何将类路径上的文件名转换为真实文件名?

例如,假设该目录"C:\workspace\project\target\classes"位于类路径中.在该目录中是一个文件,例如info.properties.

如果只给出字符串,你将如何确定(在运行时)info.properties文件的绝对文件路径"info.properties"?

结果就像是"C:\workspace\project\target\classes\info.properties".

为什么这有用?编写单元测试时,您可能希望访问测试资源(src/main/resources)中捆绑的文件,但是正在使用第三方库或需要真实文件名的其他系统,而不是相对类路径引用.

注意:我自己已经回答了这个问题,因为我认为这是一个有用的技巧,但看起来没有人曾经问过这个问题.

java classpath filepath

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

Eclipse错误"无法找到或加载主类"

我知道这个问题有很多重复,但我已经看过了所有问题,但没有一个能解决这个问题.

我正在尝试运行一个具有main函数的类.我已经清理了项目,检查了类路径'.',将bin文件夹添加到运行配置下的类路径中.我不确定还有什么可以尝试,因为该类肯定在源文件夹中.

有人可以帮我解决这个问题吗?

package testIt;

public class MemoryVisualizerApp extends Application{

public static void main(String[] args) {
    launch(args);
}

//Setup the scene and launch with given properties
@Override
public void start(Stage primaryStage) throws IOException{
    Parent root = FXMLLoader.load(getClass().getResource("/MemoryVisualizer.fxml"));
    Scene scene = new Scene(root, 650, 300);
    //Set whether the screen should be re-sizable (possibly best size = default)
    primaryStage.setResizable(true);
    primaryStage.setMinHeight(300);
    primaryStage.setMinWidth(550);
    primaryStage.setTitle("Memory Usage");
    primaryStage.setScene(scene);
    scene.getStylesheets().add("testIt/MemoryVisualizer.css");
    primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() 
    {
        public void handle(WindowEvent e){
              /*Currently the threads continue running after window is closed. Looking …
Run Code Online (Sandbox Code Playgroud)

java eclipse program-entry-point classpath

13
推荐指数
5
解决办法
11万
查看次数

如何在Linux中设置Java类路径?

我下载apache-log4j-1.2.16.zip并解压缩它.然后我将其重命名为LOG4J_HOME并将其放在/home/appnetix我的文件夹中.我尝试使用以下命令在终端中设置类路径:

[appnetix@Sanjeev ~]$ set classpath=%path%;LOG4J_HOME/log4j-1.2.16.jar;
Run Code Online (Sandbox Code Playgroud)

那回来了:

bash: LOG4J_HOME/log4j-1.2.16.jar: Permission denied
Run Code Online (Sandbox Code Playgroud)

我试过这样做:

[appnetix@Sanjeev ~]$ set classpath=%path%;//home/appnetix/LOG4J_HOME/log4j-1.2.16.jar;
Run Code Online (Sandbox Code Playgroud)

但我得到了这个:

bash: //home/appnetix/LOG4J_HOME/log4j-1.2.16.jar: Permission denied
Run Code Online (Sandbox Code Playgroud)

请帮助,我是Linux的新手(一个月).

linux classpath

12
推荐指数
2
解决办法
12万
查看次数

错误:`error - java.lang.IllegalArgumentException:从类路径获取文件时,URI不是分层的

我有一个包含在类路径中的目录中的文件.看起来像这样pl/shenlon/io/gui/appData/file.txt.现在,当我尝试将其转换为文件并使用以下代码阅读时:

File cityNamesFile = new File(ClassLoader.getSystemResource("pl/shenlon/io/gui/appData/list.txt").toURI());
Scanner cns = new Scanner(cityNamesFile);
Run Code Online (Sandbox Code Playgroud)

我得到以下内容: -

error - java.lang.IllegalArgumentException: URI is not hierarchical.

我该如何解决这个问题?

java file classpath

12
推荐指数
2
解决办法
3万
查看次数

无法找到Javac编译器

我试着mvn install收到这条消息:

Compilation failure
Unable to locate the Javac Compiler in:
  /usr/lib/jvm/java-7-openjdk-amd64/jre/../lib/tools.jar
Please ensure you are using JDK 1.4 or above and
not a JRE (the com.sun.tools.javac.Main class is required).
In most cases you can change the location of your Java
installation by setting the JAVA_HOME environment variable.
Run Code Online (Sandbox Code Playgroud)

好吧,有一个开放的jdk,我也下载了另一个.我试图将JAVA_HOME指向两者,现在它已设置:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0_03
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
Run Code Online (Sandbox Code Playgroud)

我也尝试选择其中一个打开sudo update-alternatives --config java但在其中使用不同的jdk版本得到相同的错误.

我该如何解决这个问题?提前致谢.

java ubuntu compilation classpath maven

12
推荐指数
2
解决办法
5万
查看次数

如何从运行时类路径中读取目录?

我的Java应用程序需要能够找到一个myconfig/将捆绑在同一个JAR中的目录:

myjar.jar/
    com/
        me/
            myproject/
                ConfigLoader.java --> looks for myconfig/ directory and its contents
    myconfig/
        conf-1.xml
        conf.properties
        ... etc.
Run Code Online (Sandbox Code Playgroud)

我如何实际myconfig/从运行时类路径中读取此目录?我做了一些研究,似乎从类路径中读取文件的常规方法对目录不起作用:

InputStream stream = ConfigLoader.class.getResourceAsStream("myconfig");
Run Code Online (Sandbox Code Playgroud)

那么有谁知道如何从运行时类路径(而不是单个文件)读取整个目录?提前致谢!

请注意:无法单独加载文件,myconfig是一个包含数千个属性文件的目录.

java classpath

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

MANIFEST.MF中的Class-Path是否只能包含jar文件?

我想在其他目录中包含类文件,而不是主类的目录.

如果我把这些目录放入它的Class-Path属性MANIFEST.MF不起作用.

为什么?除了将这些类打包到jar文件中之外,还有其他解决方案吗?

java jar manifest classpath

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