我试图帮助我,似乎没有人理解我的问题。我在netbeans中创建了一个项目,并在编译时生成一个jar文件。它通过IDE运行得很好但是当我尝试从命令提示符启动它时它根本不做任何事情。它只是将光标移动到另一个命令的下一行?当我回到我的类路径时,这是我得到的结果
/opt/netbeans-7.1.2/ide/modules/ext/mysql-connector-java-5.1.13-bin.jar:/h/USERS/local/pagola/NetBeansProjects/mylib/dist/mylib.jar:/h/USERS/local/pagola/NetBeansProjects/EOPPrototype/build/classes
我添加了类路径,其中包含jar中的所有内容。我的清单文件包含主类(入口点),这就是它的样子
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.6.0_22-b04 (Sun Microsystems Inc.)
Class-Path: lib/mysql-connector-java-5.1.13-bin.jar lib/mylib.jar
X-COMMENT: Main-Class will be added automatically by build
Main-Class: eopprototype.EOPPrototype
因此我无法弄清楚我做错了什么?我需要向我的PATH变量添加任何东西(也许是java jdk bin的东西)是不是能够找到java命令,因为它不知道在哪里查找该可执行文件?
注意:我没有选择我的PATH和LIBRARY PATH -do我需要这样做吗?这是一个c风格的shell脚本
答案 0 :(得分:1)
首先尝试
如果您的清单没有以换行符结尾,则可能会被忽略。见manifest requires a newline
否则我必须做出假设
如果该JAR文件包含lib/mylib.jar
并且您希望执行EOPPrototype
方法,则清单中不需要public static void main(String[] args)
。因此请将其删除,以便仅列出mysql-connector-java-5.1.13-bin.jar
。您的清单将如下所示
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.6.0_22-b04 (Sun Microsystems Inc.)
Class-Path: lib/mysql-connector-java-5.1.13-bin.jar
X-COMMENT: Main-Class will be added automatically by build
Main-Class: eopprototype.EOPPrototype
然后假设您的所有代码都在mylib.jar中,并且唯一的其他依赖jar是mysql-connector-java-5.1.13-bin.jar,请创建一个这样的目录结构
/h/USERS/temp/mylib.jar
/h/USERS/temp/lib/mysql-connector-java-5.1.13-bin.jar
然后像这样执行
cd /h/USERS/temp
java -cp .:mylib.jar eopprototype.EOPPrototype