Java 如何为不同的文件创建包?
如何为不同的文件创建Java包?我试过了 下面。我做错了什么?这是什么 正确的程序 第一个文件是:Java 如何为不同的文件创建包?,java,package,Java,Package,如何为不同的文件创建Java包?我试过了 下面。我做错了什么?这是什么 正确的程序 第一个文件是: package dil; public class Hello { Support sp=new Support(); int i=sp.tin(); public void man() { System.out.println(i); } } 第二个文件是: package dil; class Support { public i
package dil;
public class Hello
{
Support sp=new Support();
int i=sp.tin();
public void man()
{
System.out.println(i);
}
}
第二个文件是:
package dil;
class Support
{
public int tin()
{
return 3;
}
}
现在,当我编译hello.java时,它显示了以下错误:
Hello:4:cannot find symbol
symbol: class Support
location: class dil.hello
Support sp=new Support();
^
Hello:4:cannot find symbol
symbol: class Support
location: class dil.hello
Support sp=new Support();
^
问题出在哪里?我怎样才能把两者都解决
这些文件在一个包中吗
文件位于c:\src中。我发现了一些您必须检查的内容:
- 类hello以小写开头
- 类hello调用sp.ten()而不是sp.tin()
- 类hello以小写开头
- 类hello调用sp.ten()而不是sp.tin()
在您的情况下,尝试创建一个名为./dil的文件夹,将源文件放入其中,并从其父文件夹调用javac。尽管支持类不是公共的,但这不会是一个问题,因为两个类共享同一个包。我的猜测是,您没有根据packagename将两个源文件放入一个目录中,并从hello.java所在的当前目录调用javac编译器 如果一个类在包a.b中,这意味着项目结构应该包含一个包含yourclass.java的文件夹。/a/b
在您的情况下,尝试创建一个名为./dil的文件夹,将源文件放入其中,并从其父文件夹调用javac。请参阅Sun的Java教程以了解使用Java包的所有细节。请参阅Sun的Java教程以了解使用Java包的所有细节。假设UNIX/Linux路径名是UNIX shell,等等,您需要以下文件结构:
/some/where/dil
/some/where/dil/hello.java
/some/where/dil/Support.java
然后将$CLASSPATH
设置为/some/where
,并使用命令进行编译
cd /some/where
javac dil/*.java
并使用
java dil.hello
或者,您可以告诉java
和javac
使用-cp
命令行选项的类路径
还应修复代码中的以下错误:
publicstaticvoidmain(String[]arg)
。如果不解决这些问题,代码将被编译,但是java
命令将找不到入口点,并且将失败假设UNIX/Linux路径名、UNIX shell等,则需要以下文件结构:
/some/where/dil
/some/where/dil/hello.java
/some/where/dil/Support.java
然后将$CLASSPATH
设置为/some/where
,并使用命令进行编译
cd /some/where
javac dil/*.java
并使用
java dil.hello
或者,您可以告诉java
和javac
使用-cp
命令行选项的类路径
还应修复代码中的以下错误:
publicstaticvoidmain(String[]arg)
。如果不解决这些问题,代码将被编译,但是java
命令将找不到入口点,并且将失败支持
不是公共的
。将其公开并重试。支持
不是公开的。公开并重试。我建议您尝试使用一种免费的IDE,如Netbeans、Eclipse或IntelliJ CE。这将帮助您开始编写代码,而不是将所有内容都设置为困难的方式
顺便说一句:这些IDE对大多数常见问题都有快速修复功能,因此它们不仅可以为您提供错误信息,还可以为您提供修复错误的选项。我建议您尝试使用一种免费的IDE,如Netbeans、Eclipse或Intellice。这将帮助您开始编写代码,而不是将所有内容都设置为困难的方式
顺便说一句:这些IDE对大多数常见问题都有快速修复,因此它们不仅为您提供了错误,还为您提供了修复这些错误并为您执行这些操作的选项。这里有些不对劲。你能给这两个文件使用你的文件夹结构吗?以及如何编译它(包括编译的当前目录)。你能给这两个文件使用你的文件夹结构吗?事实上,我已经把两个文件放在同一个目录中,编辑了ten()并使其成为tin(),但它仍然不起作用……关键可能在于javac需要一个指向根包文件夹的类路径。(例如:如果您的源代码位于/tmp/dil中,请以sourcepath的形式从/tmp运行编译器。)事实上,我已经将这两个文件放在同一个目录中,编辑了ten()并使其成为tin(),但它仍然不起作用……关键可能在于javac需要一个指向根包文件夹的类路径。(例如:如果您的源代码位于/tmp/dil中,请从/tmp作为sourcepath运行编译器。)文件名应为Hello.java,大写字母为“H”。是。。。这就是问题所在!但是如果你看看问题的原始版本