我怎么知道java程序需要运行哪些jar文件?

时间:2014-04-02 11:43:48

标签: java jar

最近我 trying to run 2048 bot upd :作者删除了该项目,但创建了the new one)。但它只是没有奏效。开发人员说,它从Intelij IDEA运行就好了。是的,似乎它确实如此。所以我做了什么:

>"c:\Program Files\Java\jdk1.7.0_51\bin\javac.exe" Program.java -cp selenium-java-2.41.0.jar
Note: Program.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

>java Program -cp selenium-java-2.41.0.jar
Error: Could not find or load main class Program

Intelij IDEA以这种方式运行:

"C:\Program Files\Java\jdk1.7.0_51\bin\java" -Didea.launcher.port=7532 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 13.1.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.7.0_51\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\jfxrt.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\rt.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\zipfs.jar;C:\Users\Yuri\Desktop\2048_bot\2048_Bot_2.0-master\target\classes;C:\Users\Yuri\.m2\repository\org\seleniumhq\selenium\selenium-firefox-driver\2.39.0\selenium-firefox-driver-2.39.0.jar;C:\Users\Yuri\.m2\repository\org\seleniumhq\selenium\selenium-remote-driver\2.39.0\selenium-remote-driver-2.39.0.jar;C:\Users\Yuri\.m2\repository\cglib\cglib-nodep\2.1_3\cglib-nodep-2.1_3.jar;C:\Users\Yuri\.m2\repository\org\json\json\20080701\json-20080701.jar;C:\Users\Yuri\.m2\repository\org\seleniumhq\selenium\selenium-api\2.39.0\selenium-api-2.39.0.jar;C:\Users\Yuri\.m2\repository\com\google\guava\guava\15.0\guava-15.0.jar;C:\Users\Yuri\.m2\repository\org\apache\httpcomponents\httpclient\4.3.1\httpclient-4.3.1.jar;C:\Users\Yuri\.m2\repository\org\apache\httpcomponents\httpcore\4.3\httpcore-4.3.jar;C:\Users\Yuri\.m2\repository\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar;C:\Users\Yuri\.m2\repository\commons-codec\commons-codec\1.6\commons-codec-1.6.jar;C:\Users\Yuri\.m2\repository\org\apache\commons\commons-exec\1.1\commons-exec-1.1.jar;C:\Users\Yuri\.m2\repository\net\java\dev\jna\jna\3.4.0\jna-3.4.0.jar;C:\Users\Yuri\.m2\repository\net\java\dev\jna\platform\3.4.0\platform-3.4.0.jar;C:\Users\Yuri\.m2\repository\commons-io\commons-io\2.2\commons-io-2.2.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 13.1.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain Program

为方便起见,以下是jar个文件:

C:\Program Files\Java\jdk1.7.0_51\jre\lib\charsets.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\deploy.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\javaws.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\jce.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\jfr.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\jfxrt.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\jsse.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\management-agent.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\plugin.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\resources.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\rt.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\access-bridge-64.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\dnsns.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\jaccess.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\localedata.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\sunec.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\sunjce_provider.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\sunmscapi.jar
C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext\zipfs.jar
C:\Users\Yuri\Desktop\2048_bot\2048_Bot_2.0-master\target\classes
C:\Users\Yuri\.m2\repository\org\seleniumhq\selenium\selenium-firefox-driver\2.39.0\selenium-firefox-driver-2.39.0.jar
C:\Users\Yuri\.m2\repository\org\seleniumhq\selenium\selenium-remote-driver\2.39.0\selenium-remote-driver-2.39.0.jar
C:\Users\Yuri\.m2\repository\cglib\cglib-nodep\2.1_3\cglib-nodep-2.1_3.jar
C:\Users\Yuri\.m2\repository\org\json\json\20080701\json-20080701.jar
C:\Users\Yuri\.m2\repository\org\seleniumhq\selenium\selenium-api\2.39.0\selenium-api-2.39.0.jar
C:\Users\Yuri\.m2\repository\com\google\guava\guava\15.0\guava-15.0.jar
C:\Users\Yuri\.m2\repository\org\apache\httpcomponents\httpclient\4.3.1\httpclient-4.3.1.jar
C:\Users\Yuri\.m2\repository\org\apache\httpcomponents\httpcore\4.3\httpcore-4.3.jar
C:\Users\Yuri\.m2\repository\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar
C:\Users\Yuri\.m2\repository\commons-codec\commons-codec\1.6\commons-codec-1.6.jar
C:\Users\Yuri\.m2\repository\org\apache\commons\commons-exec\1.1\commons-exec-1.1.jar
C:\Users\Yuri\.m2\repository\net\java\dev\jna\jna\3.4.0\jna-3.4.0.jar
C:\Users\Yuri\.m2\repository\net\java\dev\jna\platform\3.4.0\platform-3.4.0.jar
C:\Users\Yuri\.m2\repository\commons-io\commons-io\2.2\commons-io-2.2.jar
C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 13.1.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain Program

所以它从jdk的{​​{1}}个文件开始,然后是项目输出目录,然后是jar个文件,这些文件可能由jar下载它本身就以Intelij IDEA的{​​{1}}文件结束,这可能是调试所需要的,也可能是这些文件中需要的东西。

那么,我如何知道需要哪些Intelij IDEA文件以及这些jar文件来自何处?

UPD 以下可能是设置为启动此程序的最小jar个文件:

~/.m2

所以即使在jar diretory中也不是所有C:\Users\Yuri\.m2\repository\org\seleniumhq\selenium\selenium-firefox-driver\2.39.0\selenium-firefox-driver-2.39.0.jar C:\Users\Yuri\.m2\repository\org\seleniumhq\selenium\selenium-remote-driver\2.39.0\selenium-remote-driver-2.39.0.jar C:\Users\Yuri\.m2\repository\org\json\json\20080701\json-20080701.jar C:\Users\Yuri\.m2\repository\org\seleniumhq\selenium\selenium-api\2.39.0\selenium-api-2.39.0.jar C:\Users\Yuri\.m2\repository\com\google\guava\guava\15.0\guava-15.0.jar C:\Users\Yuri\.m2\repository\org\apache\httpcomponents\httpclient\4.3.1\httpclient-4.3.1.jar C:\Users\Yuri\.m2\repository\org\apache\httpcomponents\httpcore\4.3\httpcore-4.3.jar C:\Users\Yuri\.m2\repository\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar C:\Users\Yuri\.m2\repository\org\apache\commons\commons-exec\1.1\commons-exec-1.1.jar 个文件。

UPD Selenium Client & WebDriver Language Bindings附带了jar个其他文件,但并非所有文件都需要。因此,其中一个选项是指定所有这些m2文件。但我能够以这种方式工作:

jar

UPD 或者:

jar

2 个答案:

答案 0 :(得分:2)

如果你编译

javac Program.java

然后会生成Program.class。这必须在你的类路径中。

java -cp "Program.class;selenium-java-2.41.0.jar"

答案 1 :(得分:1)

Java程序不需要运行任何特定的jar文件,但它需要包含的类。 有各种工具和网站可以帮助您找到:

还有一些工具可以帮助您管理这些依赖项,例如Maven(.m2与它相关)。 作者说

  

您需要以某种方式安装Selenium依赖项,例如使用Maven。

恕我直言,该项目应附带一个pom.xml或罐子。