相关疑难解决方法(0)

如何在linux中的classpath中添加多个jar文件

好的,我是linux和命令行的新手,对java来说还是新手.我有一个实习建立一个java程序.我终于在我的机器(Windows)上完成了它,现在我必须将它迁移到linux机器进行测试,然后让它作为可执行文件运行.我已经做了很多关于linux和阅读类路径的阅读和研究,但仍然很难完全理解.它只是没有点击我.任何人都可以使用示例以简化的方式解释类路径的目的吗?对我来说最令人困惑的一个方面实际上是定义jar的物理路径.我是从usr开始的,还是只需要从jvm文件夹开始?如果重要,我的java程序不在jvm文件夹中.任何人都可以为我解释一下吗?

编辑:非常感谢你们的帮助,我不能说我完全清楚但我对情况的理解要好得多.

java linux jar classpath

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

如何将目录添加到Clojure的类路径?

我已经将Maven的库安装到〜/ .m2/repository /目录中.我想将该路径添加到默认的Clojure类路径.我找不到文档如何做到这一点.

任何提示?

干杯!

clj
Clojure 1.4.0
user=> (require '[clojure.java.jmx :as jmx])
FileNotFoundException Could not locate clojure/java/jmx__init.class or clojure/java/jmx.clj on classpath:   clojure.lang.RT.load (RT.java:432)
Run Code Online (Sandbox Code Playgroud)

默认情况下,类路径为:

user=> (println (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader))))
(#<URL file:/Users/myuser/cljmx/> #<URL file:/usr/local/Cellar/clojure/1.4.0/clojure-1.4.0.jar> #<URL file:/Users/myuser/cljmx/>)
nil
Run Code Online (Sandbox Code Playgroud)

java clojure

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

在Ubuntu中将库添加到Java CLASSPATH

我不确定我的问题是否与Ubuntu或Java有关,所以请原谅我!

我正在尝试编译java程序,但是我收到以下错误:

package javax.comm does not exist
Run Code Online (Sandbox Code Playgroud)

我已经下载了所需的软件包,comm.jar但我不知道如何/在哪里安装/复制此文件.

我在某处读到这应该在CLASSPATH 文件夹中,但我没有这个文件夹.

这就是我得到的,java -version我想这意味着我已经在我的系统中安装了Java:

java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1)
OpenJDK Server VM (build 20.0-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我也有这些文件夹/usr/lib/jvm/:

default-java             java-1.7.0-openjdk-i386  java-6-openjdk-i386
java-1.6.0-openjdk       java-6-openjdk           java-7-openjdk-common
java-1.6.0-openjdk-i386  java-6-openjdk-common    java-7-openjdk-i386
Run Code Online (Sandbox Code Playgroud)

java ubuntu

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

在java classpath中使用通配符

我正在运行一个应该执行main方法的shell脚本:

java -classpath /path/to/app/conf/lib/nameJar* com.example.ClassTest
Run Code Online (Sandbox Code Playgroud)

在这一点上,我得到了这个例外:

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext
        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:303)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
Run Code Online (Sandbox Code Playgroud)

这是因为弹簧罐位于另一个文件夹中.所以我改变了脚本:

java -classpath /path/to/app/conf/lib/nameJar*:/path/to/app/lib/spring* com.example.ClassTest
Run Code Online (Sandbox Code Playgroud)

但是使用此脚本,无法找到com.example.ClassTest.关于这个问题的任何想法?

提前致谢

java wildcard classpath

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

javac junit给出"错误:包org.junit不存在"

我正在尝试在makefile中使用JUnit,但我无法让它工作.

我的文件夹结构如下(makefile在myProject中):

myProject
|--bin
|--main
    |--org
        |--myPackage
|--test
    |--org
    |   |--myPackage
    |
    |--lib
Run Code Online (Sandbox Code Playgroud)

其中/ main包含主文件,/ test包含测试文件和/ lib包含hamcrest-core-1.3.jarjunit-4.12.jar

我的makefile如下:

JAVAC = javac
JVM = java
JAVADOC = javadoc
MKBIN = mkdir -p bin

JAVAC_FLAGS = -g -d bin/
JAVAC_CP = -cp

SRC = main/
SRCTEST = test/
LIB = lib/*.jar

PACKAGE = org/myPackage/*.java
TARGET = bin

MAIN = org.myPackage.Main

.SUFFIXES : .class .java

all: 
    $(MKBIN) | $(JAVAC) $(JAVAC_FLAGS) $(SRC)$(PACKAGE)

test:
    $(MKBIN) | $(JAVAC) $(JAVAC_CP) $(LIB) $(SRCTEST)$(PACKAGE)

clean:
    rm …
Run Code Online (Sandbox Code Playgroud)

java junit makefile javac

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

如何在java manifest classpath中使用正则表达式?

我需要在程序执行期间使用额外的jar.我手动将jar添加到相对的./lib文件夹,然后执行该程序.我应该如何在清单文件中定义类路径?

java manifest classpath

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

Windows和Linux中的设计友好的JSP/Servlet Web开发(Ubuntu等人)

我是我的大学JSP项目的前端开发人员,到目前为止我使用Sublime Text 2编写标记和我的CSS/Less并直接从Apache Tomcat运行项目,我将项目目录放在webapps文件夹中,但是后来,该项目需要使用Servlets(显然),我意识到IDE的需要,而开发部分的同事现在坚持使用IDE.

我们将整个项目移植到NetBeans 7.1.1,到目前为止,项目工作正常,NetBeans负责创建/管理Servlet及其web.xml配置的所有麻烦,但我主要处理标记和Less,这是这里真的很乏味.以下是我面临的问题:

  • 较少的文件根本没有语法突出显示.(虽然我提到了这种.less文件添加语法高亮的方式).

  • 每次我对标记或CSS进行更改时,我都需要按F5并等到浏览器中的新选项卡启动以反映更改.(浏览器中的刷新页面不像以前的JSP开发方式那样工作).如果我看到之后没有关闭标签,想象10个标签可以进行10次更改.

  • 我经常使用jQuery,在我的.js文件中看到警告真的很烦我(我知道NetBeans可能指向正确的问题,但我根本不希望它对我的代码"过于聪明").

  • Web设计人员会知道"在浏览器中保存更改到css和刷新页面"的频率.而IDE只会减慢整个过程.

我知道使用IDE的明显优势,但有没有解决上述问题?

另外,我想移植我的项目到Eclipse(它只是疯了的精缩jQuery的文件),转向NetBeans的面前,但它只是拒绝使用相对路径为我.js,.css而且.less<script><alt>标签,即使所有的文件和文件夹存在在Web内容目录中.我得到的只是我的脚本和样式表的404错误,尽管我可以访问这些文件,我手动访问URL.如下:

<link rel="stylesheet/less" href="less/styles.less" media="all" />
<!-- Above line doesn't include the file and I get 404 error -->
Run Code Online (Sandbox Code Playgroud)

Visiting to localhost:8080/MyProject/less/styles.less 
   shows me its content in the browser.
Run Code Online (Sandbox Code Playgroud)

此外,我试图在不使用IDE的情况下使用Servlet(我的Java代码非常简单,以至于我觉得不需要类似IntelliSense的编辑)并提到了这个链接,并且如果我以与解释,但我不明白为什么我需要指定servlet-api.jarapache-tomcat\libclasspath在编译的inspite的事实,我有路径已经加入到Apache的lib文件夹的时间CLASSPATH变量在Windows中.

我知道在这个单一问题中有太多问题可能会被SO主持人"缓和",但我的所有问题都暗示了必须开发JSP/Servlet并在不使用IDE的情况下设计页面的单个问题,以及只是相当有能力的文本编辑器AKA Sublime Text.

请建议我一个坚定的解决方案.

ide jsp servlets

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

Spark-Shell:如何定义JAR加载顺序

在本地运行spark-shell +为某些第三方JAR定义类路径:

$ spark-shell --driver-class-path /Myproject/LIB/*
Run Code Online (Sandbox Code Playgroud)

在shell中,我输入了

scala> import com.google.common.collect.Lists
<console>:19: error: object collect is not a member of package com.google.common
   import com.google.common.collect.Lists
                            ^
Run Code Online (Sandbox Code Playgroud)

我想Spark首先加载了/usr/local/spark-1.4.0-bin-hadoop2.6/lib/ spark-assembly-1.4.0-hadoop2.6.0.jar,它不包含com.google.common.收集包裹.

/ Myproject/LIB /包含google-collections-1.0.jar并具有com.google.common.collect.但是,这个罐子似乎被忽略了.

问题:如何告诉spark-shell在--driver-class-path中加载JARs之前在spark-1.4.0-bin-hadoop2.6/lib /中的那些?

答案:
--jars必须使用来自Sathish和Holden注释的提示来代替--driver-class-path.必须指定所有jar文件.罐子必须以逗号分隔,没有空格(按照spark-shell --help)

$ spark-shell --jars $(echo ./Myproject/LIB/*.jar | tr ' ' ',')
Run Code Online (Sandbox Code Playgroud)

scala apache-spark

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

如何正确设置Java/Selenium配置以运行自动化测试?

我正在尝试设置selenium webdriver与Browserstack一起使用Java进行自动化测试.我安装了Selenium for java,我从browserstack的网站https://www.browserstack.com/automate/java#configure-capabilities复制并粘贴了代码,以建立一个示例自动化测试.

javac -classpath selenium-server-standalone-2.48.2.jar JavaSample.java从终端运行(JavaSample.java是带有selenium配置代码和示例测试的文件),我收到以下错误:

JavaSample.java:1: error: package org.openqa.selenium does not exist
import org.openqa.selenium.By;
                      ^
JavaSample.java:2: error: package org.openqa.selenium does not exist
import org.openqa.selenium.Platform;
                      ^
JavaSample.java:3: error: package org.openqa.selenium does not exist
import org.openqa.selenium.WebDriver;
                      ^
JavaSample.java:4: error: package org.openqa.selenium does not exist
import org.openqa.selenium.WebElement;
                      ^
JavaSample.java:5: error: package org.openqa.selenium.remote does not exist
import org.openqa.selenium.remote.DesiredCapabilities;
                             ^
JavaSample.java:6: error: package org.openqa.selenium.remote does not exist
import org.openqa.selenium.remote.RemoteWebDriver;
                             ^
JavaSample.java:18: error: cannot find symbol
DesiredCapabilities caps = …
Run Code Online (Sandbox Code Playgroud)

java selenium automated-tests selenium-webdriver browserstack

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

在Linux中的classpath上使用带有多个特定jar的javac(冒号后冒号不会扩展)

我正在尝试通过类似下面的命令编译一个使用两个jar文件(trove和apache commons集合)的java源文件

javac -cp ~/.m2/repository/gnu/trove/trove/3.0.0/trove-3.0.0.jar:~/git-workspace/grid/libs/commons-collections-3.2.1.jar $(find . -name TimeJavaCode.java)
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,公共代码没有被成功包含,并且在我使用commons库时出现编译错误.如果我颠倒了导入的顺序,那么在我使用trove时会出现编译错误.我已经尝试导出到变量以及单引号和双引号cp字符串无效(在这种情况下,没有导出成功,并且存在编译错误的trove和commons).

我已经看过以下的问题:

在java类路径中设置多个jar

使用多个.jar和javac

包括两个罐子的正确方法是什么?

java linux javac classpath

5
推荐指数
1
解决办法
1203
查看次数