相关疑难解决方法(0)

你如何在Java中更改CLASSPATH?

如何从Java进程中更改Java进程的CLASSPATH?


在你问我之前"你为什么要那样做?" 我马上解释一下.

当你运行Clojure REPL时,通常需要在你的CLASSPATH中加入更多的jar来加载Clojure源文件,我想这样做而不必重新启动Clojure本身(在Slime上使用它时这不是一个真正的选择)在Emacs上).

这就是原因,但我不希望这个问题被标记为奇怪的语言奇怪的编辑器,并被大多数可能有答案的Java开发人员所忽视.

java clojure classpath

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

是否可以在java中动态地"添加"到类路径?

java -classpath ../classes;../jar;. parserTester
Run Code Online (Sandbox Code Playgroud)

如何以编程方式获取上述命令中的功能?喜欢,是否可以运行:

java parserTester
Run Code Online (Sandbox Code Playgroud)

得到相同的结果?我尝试使用URLClassLoader但它修改了类路径并且没有添加它.

感谢名单!


感谢Milhous的回应.但这就是我想要做的事情.如何才能首先将jar放入类路径?我也试过使用自定义类加载器:(

这工作..但抱歉,我只需要运行它:java parserTester我想知道这样的事情是否可能???

它需要是如此bcoz我有一个单独的文件夹中的parserTester.java和.class.我需要保留文件结构.parserTester在单独的jar文件夹中使用jar.

java classpath urlclassloader

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

在Mac OS X上加载JNI lib?

背景

所以我试图在运行时在Mac OS X 上将jnilib(特别是JOGL)加载到Java中.我一直在关注相关的Stack Overflow问题:

我的最终目标是将特定于平台的JOGL文件打包到JAR中,并将它们解压缩到临时目录中并在启动时加载它们.我回过头来尝试使用硬编码路径加载JOGL:

    File f = new File("/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/libjogl.jnilib");
    System.load(f.toString());
    f = new File ("/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/libjogl_awt.jnilib");
    System.load(f.toString());
Run Code Online (Sandbox Code Playgroud)

尝试使用JOGL API时出现以下异常:

    Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path
Run Code Online (Sandbox Code Playgroud)

但是当我java.library.path通过添加以下JVM选项指定时:

    -Djava.library.path="/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/" 
Run Code Online (Sandbox Code Playgroud)

一切正常.


是否可以System.load在Mac OS X上使用(或其他变体)作为在运行时调用的-Djava.library.path的替代?

java macos java-native-interface jogl

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