Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.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
简化eclipse中创建的java程序在从cli运行时的类路径输入?_Java_Eclipse_Command Line_Classpath_Command Line Interface - Fatal编程技术网

简化eclipse中创建的java程序在从cli运行时的类路径输入?

简化eclipse中创建的java程序在从cli运行时的类路径输入?,java,eclipse,command-line,classpath,command-line-interface,Java,Eclipse,Command Line,Classpath,Command Line Interface,我使用eclipse作为IDE将项目保存到samba网络驱动器上,该驱动器已映射到我的ubuntu主服务器上。我已经将Eclipse配置为将我正在使用的jar库保存到/lib文件夹中 问题是,当我试图从服务器上的命令行运行java程序时,我总是必须键入 java -cp .:../lib/* javaclassname 这有点令人厌烦,尤其是考虑到制表符完成不能处理必须包含在类路径中的冒号。有没有什么方法可以进行设置,这样我就不必每次都手动指定类路径?最简单的选择是让Eclipse为您构建JA

我使用eclipse作为IDE将项目保存到samba网络驱动器上,该驱动器已映射到我的ubuntu主服务器上。我已经将Eclipse配置为将我正在使用的jar库保存到/lib文件夹中

问题是,当我试图从服务器上的命令行运行java程序时,我总是必须键入

java -cp .:../lib/* javaclassname

这有点令人厌烦,尤其是考虑到制表符完成不能处理必须包含在类路径中的冒号。有没有什么方法可以进行设置,这样我就不必每次都手动指定类路径?

最简单的选择是让Eclipse为您构建JAR。右键单击您的项目,然后选择Export>RunnableJAR文件。该对话框将为您提供一些选项。选择“复制所需库…”。输出将是您的主应用程序JAR文件,以及一个包含依赖项的lib文件夹。在本例中,JAR文件清单将指定类路径,该路径指向所有依赖项。然后在命令行上运行它就像“java-jarmyjar.jar”一样简单


如果你想让事情自动化,我会从Ant开始。我认为这不会像Maven那样是一个学习曲线。在本例中,请查看。

我最终解决了这个问题,制作了一个名为
run.sh
的shell脚本,并将其放在项目的根文件夹中

run.sh:

#!/bin/bash

LIBS=$(grep '<classpathentry kind="lib" path="' .classpath | sed 's/.*\<classpathentry kind="lib" path="//' | sed 's/\"[^\"]*$//' | tr '\n' ':')

java -cp "bin:$LIBS" $1
#/bin/bash

自由基=$(grep'研究如何通过在清单中添加类路径条目来使程序可运行。mf生成别名或脚本?@ThorbjørnRavnAndersen我还没有生成JAR,但我会研究它,如果这能使事情变得更简单-这是ant做的吗?@vikingsteve是的,我可以生成脚本或别名,但通常这些都是小测试程序rams,不值得定制脚本。我仍然希望找到一种在eclipse中设置默认值的方法来实现自动化。您考虑过使用Ant之类的构建工具吗?或者Maven之类的依赖关系管理器吗?这些工具消除了这些重复的手动任务。谢谢,我将进一步研究Maven,这听起来很诱人还包括依赖关系管理,看起来它可以做ant所做的一切。