【问题标题】:Compiling java code with shellscript, including several files(.jars .class)用shellscript编译java代码,包括几个文件(.jars .class)
【发布时间】:2023-04-09 22:43:01
【问题描述】:

我有以下代码在 shellscript 中编译一个 java 程序:

javac workshop/*.java -cp jars/\*  
javac menu/*.java -cp jars/\*  -cp workshop/

此代码应编译车间中的所有 java 文件并将所有内容包含在 jar 中,然后它应编译菜单中的所有内容,同时将每个 jar 文件包含在 jar 中,并将每个 .class 文件包含在车间中。

但这并不是第二个命令给我的错误

menu/PgElementSet_Menu.java:15: error: package workshop does not exist
import workshop.*;

包研讨会位于工作区.MyWorkShop.class(以及其他)中。

现在我可能正在做一些愚蠢的事情,但我不确定我做错了什么,代码基于 .bat 文件,它执行以下操作(并且适用于 Windows 机器)

javac -classpath jars\javaview.jar;jars\jvx.jar;. workshop\*.java
javac -classpath jars\javaview.jar;jars\jvx.jar;. menu\*.java
@pause

有什么想法吗?

【问题讨论】:

  • 我猜你在这里不需要\*-cp jars/\* 。另外,我会遵循javac 手册页中指定的优先级:javac [ options ] [ sourcefiles ] [ classes ] [ @argfiles ],即javac -cp jars workshop/*.java
  • javac -cp jars Workshop/*.java 不起作用并引发大量缺少包错误。 (可能缺少罐子)
  • workshop的类文件的输出目录是什么
  • @Sanjeev 第一个.command 将一些.class 文件发送到workshop 文件夹(workshop/MyWorkshop.class from Workshop/MyWorkshop.java)
  • 尝试使用斜杠而不是反斜杠 - menu/*.java

标签: java shell batch-file compilation javac


【解决方案1】:

这对你有用

for i in `ls jars/*.jar`; 
do 
    export CLASSPATH=$CLASSPATH:$i; 
done
export CLASSPATH=.:$CLASSPATH
javac `find * -name *.java`

【讨论】:

  • 很高兴它帮助了你..干杯
猜你喜欢
  • 2014-03-31
  • 2020-10-25
  • 1970-01-01
  • 1970-01-01
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
  • 2020-03-01
  • 1970-01-01
相关资源
最近更新 更多