Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不使用IDE的情况下在java中包含库_Java_Libraries - Fatal编程技术网

如何在不使用IDE的情况下在java中包含库

如何在不使用IDE的情况下在java中包含库,java,libraries,Java,Libraries,如何在java程序中导入库而不使用像Netbeans这样的IDE? 在Netbeans中,我是这样做的: 如何通过使用记事本++或程序员的记事本来实现同样的功能。 我尽量不想使用Netbeans,因为我只从事简单的项目,这样做太过分了 将JAR放在类路径中,类路径是一个环境变量 javac -classpath external.jar myClass.java 编辑: 如果主类在包中 package com.mycompany; public class myClass { ... ...

如何在java程序中导入库而不使用像Netbeans这样的IDE? 在Netbeans中,我是这样做的:

如何通过使用记事本++或程序员的记事本来实现同样的功能。
我尽量不想使用Netbeans,因为我只从事简单的项目,这样做太过分了

将JAR放在类路径中,类路径是一个环境变量

javac -classpath external.jar myClass.java
编辑:

如果主类在包中

package com.mycompany;
public class myClass
{
...
...
然后

你需要

javac -classpath external.jar com/mycompany/myClass.java 

运行

java -classpath external.jar com.mycompany.myClass

确保jar文件在您的类路径中,并且您有import语句。

除了@StackOverflowException的post之外,添加多个文件和位置也完全可以

javac -cp location1/;location2/;file1.jar;file2.jar fileToCompile
注::

-cp和-classpath是一回事。
如果您使用的是Solaris(以及其他一些UNIX版本),请更改“;”对于“:”

所有其他海报都在现场,您只需将jar添加到类路径中即可

Java提供了许多设置类路径的机制,包括通过命令行、通过环境变量以及通过在可执行Java jar文件的MANIFEST.MF中设置类路径

这些都是很难处理的问题。了解技术和基本知识是很好的。但实际使用它们确实是个坏主意

你应该做的就是这样

首先,将所有Java库放在系统的一个地方。C:\java\libraries,或其他。某个你记得的地方,某个你所有项目都可以访问的地方

接下来,使用所有库的版本号命名它们。如果您使用log4jv1.4.1,那么将jar放在库区域的log4j-1.4.1目录中。这将为您提供“免费”的库版本控制

最后,学习蚂蚁。对于简单的项目,Ant很简单。使用Ant build.xml文件编译、测试和运行应用程序

为什么??有几个原因

因为一旦设置完毕,向项目中添加一个新库就很简单了,您可以在build.xml中添加一行。Ant使您能够更轻松地处理简单的抽象(比如所有库的位置)

build.xml是自包含的。例如,如果为类路径使用环境变量,则一个项目的类路径可能与另一个项目的类路径不同。这意味着重置环境变量。如果你继续这样做,你会对一些“新问题”骂骂咧咧,因为你的类路径设置错了。在build.xml中设置一次,然后忘记它

蚂蚁是便携式的。它在Windows、Linux、Mac、AS/400上运行,与shell脚本或BAT文件不同,它在Java运行的任何地方都运行

它很轻。简单的ant脚本很简单。他们不会带太多的行李,你总是可以把他们弄得很复杂。它比Maven简单得多,只用于构建

大多数IDE直接支持Ant。如果您决定返回IDE,大多数人可以简单地使用ant构建文件,只需进行最少的配置


这就是使用notepad++解决类路径问题的方法。设置类路径是可行的,但还不够,管理和管理起来很麻烦。学习Ant的基础知识将使您以最少的工作量走得更远。

您应该将它们放在类路径上,如

java-classpath someJar.jar YourMainClass

当然,您也可以对
javac
执行同样的操作

如果需要在类路径上有多个jar或目录,则需要使用平台的默认路径分隔符。例如,在Windows上

java-classpath someJar.jar;myJar.jar YourMainClass


另一方面,您可能会发现使用IDE来管理此类内容更容易。我个人只使用了我的略带脚本化的编辑器,并且管理得很好。但是知道如何通过命令行完成这项工作是很好的。

线程“main”java.lang.NoClassDefFoundError中的异常:由以下原因引起的Quizzer:java.lang.ClassNotFoundException:Quizzer位于java.net.URLClassLoader$1.run(未知源代码)位于java.security.AccessController.doPrivileged(本机方法)在java.net.URLClassLoader.findClass(未知源)在java.lang.ClassLoader.loadClass(未知源)在sun.misc.Launcher$AppClassLoader.loadClass(未知源)在java.lang.ClassLoader.loadClass(未知源)找不到主类:Quizzer。程序将退出。您的主类是否有包名?@stackOverflowerr-您还需要在
java
命令上使用
-classpath
参数。如果您在.java文件所在的目录中编译,您需要使用:
java-classpath external.jar:com.mycompany myClass
我需要准确键入
-classpath
还是我需要键入需要将“classpath”替换为实际路径,如
E:\some folder\my_lib.jar
?这可能会起作用。但将所有JAR转储到一个地方并不是最佳做法。我真正想说的是,如果您依赖
CLASSPATH
环境变量来查找JAR,则一个Java应用程序的
CLASSPATH
设置可能与另一个Java应用程序所需的设置冲突。这是可以减轻的,但它很容易绊倒你。更好的方法(不容易出错)是编写一个包装器脚本(或自定义启动器)来启动应用程序,或者将其转换为一个处理自己类路径的“可执行”JAR,并使用
java-JAR运行它…
@StephenC抱歉,我很沮丧。。。最终使用了shebang java源代码
FOO=bar java…
在技术上是一个env变量,但在我看来,它是一个良性参数。env代表环境。。。修改大型环境以操纵大型租户是个坏主意。。。我认为
CLASSPATH=。java
并不比java-classpath差。我同意这一点。但这并不是典型的Linux/Windows/Java初学者设置CLASSPAT的方式