我这LINUX下用VI 建立了一个communication.java的文件,
在里面实现了两个接口,一个类,还有一个communication的类,主函数在communication类里面。然后我运行javac communication.java来调试,提示一个ERROR。
我找找了一下,代码没有问题。把原代码复制到windows下用eclipse来调试没有出错。我想问题是不是出现在一个文件里面不能定义多个类,和接口,源代码很简单,全部放在里面,我贴出来。
class producer implements Runnable
{
Q q =null;
public producer(Q q)
{
this.q=q;
}
public void run()
{
int i=0;
while(true)
{
synchronized(q)
{
if(i==0)
{
q.name="tommmmmmmmmmmm";
try
{
Thread.sleep(1000);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
q.sex="mannnnnnnnnnnnn";
}
else
{ q.name="annnnnnnnnnna";
q.sex="womennnnnnnnnn";
}
}
i=(i+1)%2;
}
}
}
class Q
{
String name="annnnnnnnnnna";
String sex="womennnnnnnnnn";}class consumer implements Runnable
{
Q q=null;
public consumer(Q q)
{
this.q=q;
}
public void run()
{
while(true)
{
synchronized(q)
{
System.out.println(q.name+"---------->>>>"+q.sex);
}
}
}
}
public class threadcommunication
{
public static void main(String [] args)
{
Q q=new Q();
new Thread(new producer(q)).start();
new Thread(new consumer(q)).start();
}
}
在里面实现了两个接口,一个类,还有一个communication的类,主函数在communication类里面。然后我运行javac communication.java来调试,提示一个ERROR。
我找找了一下,代码没有问题。把原代码复制到windows下用eclipse来调试没有出错。我想问题是不是出现在一个文件里面不能定义多个类,和接口,源代码很简单,全部放在里面,我贴出来。
class producer implements Runnable
{
Q q =null;
public producer(Q q)
{
this.q=q;
}
public void run()
{
int i=0;
while(true)
{
synchronized(q)
{
if(i==0)
{
q.name="tommmmmmmmmmmm";
try
{
Thread.sleep(1000);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
q.sex="mannnnnnnnnnnnn";
}
else
{ q.name="annnnnnnnnnna";
q.sex="womennnnnnnnnn";
}
}
i=(i+1)%2;
}
}
}
class Q
{
String name="annnnnnnnnnna";
String sex="womennnnnnnnnn";}class consumer implements Runnable
{
Q q=null;
public consumer(Q q)
{
this.q=q;
}
public void run()
{
while(true)
{
synchronized(q)
{
System.out.println(q.name+"---------->>>>"+q.sex);
}
}
}
}
public class threadcommunication
{
public static void main(String [] args)
{
Q q=new Q();
new Thread(new producer(q)).start();
new Thread(new consumer(q)).start();
}
}
以及一个文件里面,是不是能定义这么多个类,实现接口之类,以及是不是没有引用头文件之类。希望各位高手指点一下
如果你的三个类都定义在一个文件中,那么类名应该是threadcommunication.java,而不是communication.java
error: cannot read: threadcommunication.java
1 error
1 error 我想可能是LINUX编译的条件要求之类的
实在不知道JRE的权限,尝试把文件设成777
你告诉我 你这个错误是LINUX提示的还是JRE提示的
cannot read
看上去貌似是权限
另外为什么我 要 经常 输入source /etc/profile命令,
我执行是用ROOT权限执行的阿
export java_home=/usr/java/j2sdk1.4.2_16
export CLASSPATH=.:$java_home/lib/dt.jar
export PATH=$java_home/bin:$java_home/jre/bin:$PATH我的环境变量设置