在linux中运行java程序
我正在尝试在linux环境中运行java程序。该计划的结构如下 src(目录)在linux中运行java程序,java,linux,Java,Linux,我正在尝试在linux环境中运行java程序。该计划的结构如下 src(目录) 主目录(目录) --test.java 普通(套装) --a.java --b.java java是我的主程序 我使用以下命令从src目录级别运行该程序 javac-cp.../../lib/netcdf.jar:/common/*.java“main/test.java 我发现了与包common not found相关的错误,并且找不到包common下的所有类 你能帮我解决这个问题吗 谢谢Java不会扩展glo
- 主目录(目录) --test.java
- 普通(套装) --a.java --b.java
谢谢Java不会扩展glob(
*
),除非它是路径中唯一的最后一段(在这种情况下,它会扩展到所有jar文件)。已经有一段时间了,但我相信您应该能够完全关闭*.java
(-cp./../lib/netcdf.jar:common“
)。您似乎正在使用/common
,这将使它在系统根目录中查找名为common
的文件夹。这里有一些问题
首先,javac在类文件(.class)中保存您的代码。它不运行代码,而是将源代码转换为可以运行的表单
在编译代码时,所有的.java文件都应该根据它们的包进行结构化。因此,您不能随意决定将一些java文件放在一个文件夹中,另一些放在另一个文件夹中。例如,如果java文件指定“package com.mycompany”,并且您的src目录指定为src,那么java文件必须位于“/src/com/mycompany”中
在代码中,当需要引用已经编译成.class文件的其他代码(通常是外部库)时,可以指定类路径(这就是为什么这样调用它)。注意,为了清楚起见,我将重复这一点,这不是针对.java文件,而是针对.class文件。有时许多.class文件被打包到一个单独的归档文件中,称为java归档文件或“”
还要注意,在unix系统上,“/common”是绝对值。如果需要相对路径,则应指定“/common”
此外,类路径分隔符为“;”非“:”
总之,如果没有一个java文件指定显式包,只需将所有.java文件放在同一个目录中(我建议使用./src)。然后从src目录运行javac-sourcepath./src*.java
或简单地运行javac*.java
还有更多关于管理源文件和类文件的内容。我使用以下命令编译并运行了它 javac-classpath'.:../../lib/*'main/test.java 来源:
java
java
javac
appletviewer
md arivu
cd-arivu
gedit ex.java
javac ex.java
javaex
- javac ex.java
- appletviewerex.java
您应该能够
javac
main类。编译器将根据文件中的导入来提取所需的资源。请尝试将cding插入目录,然后运行命令。在源文件中导入什么?您导入的类和包在什么地方?它们是否链接到您的类路径中?如何?@thermz:如何将netcdfjar和公共包链接到类路径?当我像javac main/test.java那样编译时,它会抛出与netcdf jar文件中的类相关的错误。因此,当我将它们链接到类路径时,比如javac-cp“../../lib/netcdf.jar”main/test.java,我发现与包common-not-found相关的错误。我认为Kevin answer是解决您问题的方法。我运行了以下命令并根据您的建议:javac-cp“../../lib/netcdf.jar:common”main/test.jar。但似乎不起作用。我仍在接受采访errors@ShenoyTinny哦,“common”实际上是一个jar文件,“common.jar”?在cpcommon.jar
中将设置为公共
。此答案看起来与原始问题不完全相关。