永发信息网

新手求教,.java编译为.class失败,

答案:2  悬赏:50  手机版
解决时间 2021-03-21 14:44
  • 提问者网友:容嬷嬷拿针来
  • 2021-03-20 17:52
新手求教,.java编译为.class失败,

从网上下载了8个文件,后缀为.java. 需要编译为jar包才能被外部程序调用.
第一步需要编译为.class格式.我下载并安装jdk,设置了jdk需要的环境变量path和classpath.
C:\Program Files\Java\jdk1.8.0_131\bin
C:\Program Files\Java\jdk1.8.0_131\lib

这几个java文件的开头基本都是如下几句:
package HDF;

import java.io.UnsupportedEncodingException;

import javax.swing.JOptionPane;

import ncsa.hdf.hdf5lib.H5;

import ncsa.hdf.hdf5lib.HDF5Constants;

import ncsa.hdf.hdf5lib.exceptions.HDF5Exception;

import ncsa.hdf.hdf5lib.exceptions.HDF5LibraryException;

貌似需要一个含有.....ncsa.hdf.hdf5lib.....的东西. 我google了一下,发现这是HDF的java包,于是从HDF官

网下载了java源文件hdf-java-3.2.1-Source.zip,解压缩后,是一个hdf-java-3.2.1文件夹,里面紧接着有hdf

\hdf5lib\H5.java文件,hdf\hdf5lib\HDF5Constants.java文件,hdf\hdf5lib\exceptions

\HDF5Exception.java文件,hdf\hdf5lib\exceptions\HDF5LibraryException.java文件. 看来所需要的导入

的东西都在这里面.

可是前面还有一个ncsa.,我猜测可能是顶层文件夹名,于是把hdf-java-3.2.1文件夹重命名为ncsa.

我还看到第一句总是 package HDF,我猜测可能ncsa文件夹需要放置在HDF文件夹下.
于是我创建了文件夹D:\GreenSoft\IMSWriter\HDF,然后把整个ncsa文件夹移动到\HDF下面.

我还把D:\GreenSoft\IMSWriter\HDF路径添加到了classpath变量中.

现在路径变成了D:\GreenSoft\IMSWriter\HDF\ncsa\hdf\hdf5lib.....(一堆东西都在这里).

然后我把下载的8个待编译的.java文件放在了D:\GreenSoft\IMSWriter\HDF\下面:

D:\GreenSoft\IMSWriter\HDF\HDFPreprocessor.java
D:\GreenSoft\IMSWriter\HDF\HDFUtils.java
D:\GreenSoft\IMSWriter\HDF\HDFWriter.java
D:\GreenSoft\IMSWriter\HDF\ImarisWriter.java
D:\GreenSoft\IMSWriter\HDF\PipelineImage.java
D:\GreenSoft\IMSWriter\HDF\ResolutionLevel.java
D:\GreenSoft\IMSWriter\HDF\ResolutionLevelMaker.java
D:\GreenSoft\IMSWriter\HDF\TimePoint.java

接下来打开cmd,输入:
d:
cd D:\GreenSoft\IMSWriter\HDF
javac HDFWriter.java

结果显示:
D:\GreenSoft\IMSWriter\HDF>javac HDFWriter.java
HDFWriter.java:8: 错误: 无法访问H5
import ncsa.hdf.hdf5lib.H5;
^
错误的源文件: .\ncsa\hdf\hdf5lib\H5.java
文件不包含类ncsa.hdf.hdf5lib.H5
请删除该文件或确保该文件位于正确的源路径子目录中。

接下来打开cmd,输入:
d:
cd D:\GreenSoft\IMSWriter\HDF
javac HDFPreprocessor.java

D:\GreenSoft\IMSWriter\HDF>javac HDFPreprocessor.java
HDFPreprocessor.java:10: 错误: 找不到符号
private ResolutionLevel[] resLevels_;
^
最佳答案
  • 五星知识达人网友:末日狂欢
  • 2021-03-20 19:09
这是因为java文件必须先编译为class文件(通过javac命令编译),之后才能执行的。

举例:
public class Aaa{
public static void main(String[] args){
System.out.print("执行偶吧!");
}
}
保存为:Aaa.java
编译:在开始--运行--输入:cmd
输入:cd 指定你保存文件的文件夹路径--dir找到这个文件
开始输入:javac Aaa.java
运行:java Aaa
全部回答
  • 1楼网友:野味小生
  • 2021-03-20 20:40
好吧,我承认我是伸手党,但是大大们给个链接吧,我找了半天找不到啊。。。。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯