【问题标题】:javac invalid flagjavac 无效标志
【发布时间】:2011-07-08 15:36:16
【问题描述】:

我试图在命令提示符中执行此命令以查找我的构建错误。我所分解的是 javac 将文件名之一视为标志(选项),这就是它无法执行的原因。我该如何解决这个问题?

C:\Users\AUG>javac -verbose -classpath "C:\Program Files\MATLAB\R2010b\toolbox\j
avabuilder\jar\javabuilder.jar" -d "C:\Users\AUG\Documents\SourceTraceJAVA\Sourc
eTrace\src\classes" "C:\Users\AUG\Documents\SourceTraceJAVA\epanet2.h" "C:\Users
\AUG\Documents\SourceTrace\src\SourceTrace\SourceTrace.java" "C:\Users\AUG\Docum
ents\SourceTraceJAVA\SourceTrace\src\SourceTrace\SourceTraceMCRFactory.java" "C:
\Users\AUG\Documents\SourceTraceJAVA\SourceTrace\src\SourceTrace\SourceTraceRemo
te.java" "C:\Users\AUG\Documents\SourceTraceJAVA\SourceTrace\src\SourceTrace\pac
kage-info.java"
javac: invalid flag: C:\Users\AUG\Documents\SourceTraceJAVA\epanet2.h
Usage: javac <options> <source files>
use -help for a list of possible options

它将 epanet2.h 文件视为标志而不是文件。语法有问题吗? 我该如何解决这个问题?

【问题讨论】:

  • 这是什么.h 文件?一个 C/C++ 头文件?
  • 是的。它是一个 C/C++ 头文件。
  • 您希望如何在 javac 编译器中使用 C/C++ 包含文件?
  • 是的,因为您的 -d 选项后跟 n 引用的空格分隔的项目。第二个这样的项目“...\epanet2.h”不被视为 -d 选项的附加术语(它只为类输出寻找单个目录)。问题(javac 和我的)是:什么是 .h 头文件?
  • @Nick - javac 不构建 jar,jar 构建 jar

标签: java build javac matlab-deployment


【解决方案1】:

Java 不知道如何处理 .h 文件——它看起来(基于扩展名)像一个 C 头文件,因此它不应该包含在传递给 javac 的文件列表中,或者如果它是一个有效的 java 源文件,然后将其扩展名更改为 .java

【讨论】:

  • 我想将 DLL 和头文件与该 jar 中的 java 文件一起打包。我怎么能在那个 jar 中包含标题?
  • 您仍然可以将它们指定为jar 命令的参数——但不能指定给javac 命令。 javac 编译代码,jar 打包它们。
  • 任何人都可以显示如何先编译代码然后将它们打包到 jar 中的语法吗?那真的很有帮助。我为此苦苦挣扎了很长时间。
  • 你需要先执行javac来编译你的代码——语法在这里:download.oracle.com/javase/1.4.2/docs/tooldocs/windows/…然后你执行jar来打包编译的代码——语法在这里:download.oracle.com/javase/1.4.2/docs/tooldocs/solaris/jar.html
【解决方案2】:

*.h 不是有效的 java 源文件扩展名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-04
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多