永发信息网

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

答案:2  悬赏:50  手机版
解决时间 2021-03-21 14:44
新手求教,.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_;
^
最佳答案
这是因为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
全部回答
好吧,我承认我是伸手党,但是大大们给个链接吧,我找了半天找不到啊。。。。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
沈家门到朱家尖大青山公园怎么坐公交
现在微信转账限额是多少 微信转账手续费怎么
华堂养生长寿NO.3我想知道这个在什么地方
有多少人激光眼术后看手机的?现在有什么影响
离婚协议书是被迫签订的,离婚时有效吗
宝宝三个半月了.晚上睡觉总是使劲的摇头怎么
词语接龙列如“回”后面应该填什么
家禽养殖专业户王大叔今年的收入比去年减少二
应交增值税明细科目有哪些
何炅写本书叫做什么名字?
数码相机,为什么开机后显示此电池无法使用。
iPhone6Plus组装机和原装机有什么区别
新配了个眼镜,但是镜片度数一样,镜架不一样
如何在聚划算中找天猫超市商品?直接搜索天猫
湘黑鸭我想知道这个在什么地方
推荐资讯
四大办公软件教程的视频
福建中医药大学中医学专业有哪些课程?
怎样选择功放?
伍缘折扣(长江3店)在哪里啊,我有事要去这个
君威台球会所地址在什么地方,想过去办事
如果没有安史之乱,唐朝会怎摸样?
万家乐电热水器排汅囗如何拆下
老式硬盘是什么接口
如何把图片裁剪成圆形
腌笃鲜中的咸肉可以用火腿来代替吗
利凯城铜仁专卖店地址在什么地方,想过去办事
下列读音全对的一项是A.媒妁(shuò)之言
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?