我的应用程序使用的特定目录中有数百个罐子.所以我认为很难将每个罐子逐个添加到类路径中.所以有任何命令或任何方式,以便我可以一次性添加所有的罐子.有些人*.jar应该添加所有的罐子.
所以,我可以做得很好:
java mypackage.MyClass
Run Code Online (Sandbox Code Playgroud)
如果./mypackage/MyClass.class存在.我也很乐意这样做:
java -cp myjar.jar mypackage.MyClass
Run Code Online (Sandbox Code Playgroud)
如果类文件存在于jar的适当部分.简单的东西.但我不能为我的生活设法做这样的事情:
java -cp utilities.jar mypackage.MyClass
Run Code Online (Sandbox Code Playgroud)
其中./mypackage/MyClass.class存在,并且其中./utilities.jar存在的(不含有当然MyClass的).
我差点感到愚蠢吗?
有没有人有代码来检测类路径中的重复JAR?
背景:当类路径中有相同JAR的两个版本时,可能会发生奇怪的事情.使用Maven等工具时甚至会发生这种情况:更改依赖关系并构建WAR而不先清理.由于target/webapp/WEB-INF/lib没有清理,依赖将在那里两次.
这有安全网吗?
我正在使用Eclipse学习用Java开发Android应用程序.我之前没有使用过Eclipse.
我正在尝试使用的项目(由OReilly提供,作为"Android应用程序开发"的一部分)是MJAndroid.尝试运行项目时,运行失败,并且找不到"问题"选项卡提到的com.java.Object,并且Eclipse要求我检查构建路径.单击属性 - > Java构建路径 - >库,将显示消息"无法获取项目的系统库".
在一个工作项目中,Properties - > Java Build Path - > Libraries有一个Android 1.1的条目,如果我单击Edit,它的类路径容器路径为com.android.ide.eclipse.adt.ANDROID_FRAMEWORK.
向我的非工作项目添加正确的容器路径似乎很简单.然而,Eclipse似乎决心尽可能地做到这一点.无论我选择添加什么 - 罐子,外部罐子,变量,库,类文件夹,外部类文件夹,似乎没有采取'com.1android.ide.eclipse.adt.ANDROID_FRAMEWORK'形式的'Android 1.1'在工作的应用程序上的条目.
如何将此命名空间添加到我的项目中,使其类似于工作空间?
我很确定这是Eclipse有点奇怪的用户界面的问题.坦率地说,除了文件之外我没有什么比修改和设置这样的信息更好的了 - 我的背景是Python,整个日食环境似乎是不必要的负担.
有没有办法使用Eclipse将所有jar文件包含在类路径的目录中?
可以通过以下命令使用命令行来完成:
java -cp "lib/*" my.package.Main
Run Code Online (Sandbox Code Playgroud)
但是如何从日食中完成呢?
编辑:我.classpath在我的项目文件中编辑了条目:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="F:/Program Files/Java/log4j/apache-log4j-2.0-alpha2-bin/*"/>
<classpathentry kind="output" path="classes"/>
</classpath>
Run Code Online (Sandbox Code Playgroud)
这F:/Program Files/Java/log4j/apache-log4j-2.0-alpha2-bin/是文件所在的jar文件夹.但它没有用.
更新:似乎没有直接的方法来做到这一点.并且可能是最简单的解决方案是创建用户库.
当我尝试运行时gradle test,我得到以下输出:
$ gradle test
:ro:compileJava UP-TO-DATE
:ro:processResources UP-TO-DATE
:ro:classes UP-TO-DATE
:ro:jar
:compileJava
:processResources UP-TO-DATE
:classes
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test
ro.idea.ToggleTest > testIsAd FAILED
java.lang.NoClassDefFoundError at ToggleTest.java:13
Caused by: java.lang.ClassNotFoundException at ToggleTest.java:13
ro.idea.ToggleTest > testToggle FAILED
java.lang.NoClassDefFoundError at ToggleTest.java:13
2 tests completed, 2 failed
:test FAILED
Run Code Online (Sandbox Code Playgroud)
所以我想检查我的类路径以查看我的类路径是否错误.
我的问题是:如何test使用Gradle任务列出类路径?
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.
我有一个位于/ home/myself/workspace/Project1的项目,我为此创建了一个来自Python 2.7.3 Virtualenv的SDK.
这个项目使用了我在可访问目录中的一些外部代码,例如/ home/myself/LIBRARY; 这个目录包含几个带代码,docs等的目录....
例如,/home/myself/LIBRARY/mymodule/immortin_util.py中有一个模块"important_util".
现在,我在SDK Classpath中添加了整个dir/home/myself/LIBRARY,在Editor窗口中它看起来很好.识别导入和调用,我还可以浏览LIBRARY目录中的代码.
问题是,当我尝试运行我的程序时,它在使用LIBRARY的第一次导入时失败!
Traceback (most recent call last):
File "/home/myself/workspace/Project1/my_program.py", line 10, in <module>
from mymodule import important_util as ut
ImportError: No module named mymodule
Run Code Online (Sandbox Code Playgroud)
我还尝试将相同的目录添加到Sources部分的"Global Libraries"部分......但没有运气.
我似乎无法找到将此代码添加到Run类路径的方法,我怎么能这样做?
当我编译一个依赖于我之前编译的其他模块的模块时,我必须指定该--module-path <directory>选项.这使我依赖的模块可见.
但与此同时,我还想让一些非模块化的Jar文件可见.但是,如果不使它们成为自动模块并且只是在--class-path some.jar旁边指定--module-path <directory>,那么javac似乎忽略了claspath并抛出"package yyy not found"和其他"未找到"错误.
我可以理解,使用--class-path和--module-path在同一个(编译)时间是非法的,但javac并没有以任何方式警告我.
我正在使用一个使用Maven编译和测试的库.
我能够毫无问题地编译库.在编译时,似乎它下载了库的所有依赖项.
现在,我正在尝试在我的项目中使用该库.当我编译库时,我发现target在库文件夹中创建了一个名为的文件夹,在该文件夹中,还有一个名为的文件夹classes.我将classes文件夹添加到了我的类路径中.但是,每当我尝试在我的项目中使用不使用Maven的库时,它就说它无法找到该库的依赖项.
如何将所有库的依赖项添加到类路径中?
我是否需要手动下载所有库的依赖项并将它们添加到类路径中?
有什么方法可以让Maven为我这样做吗?
我需要做什么才能在项目中使用库?
我的项目位于与库完全不同的目录中.现在,我的项目似乎能够正确加载库文件,但不是库依赖项.