java编译后没有东西_这段代码编译没有错误,但为什么运行后没有显示呢?哪里需要更改吗...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

package somes;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.HashMap;

import java.util.Map;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

import java.util.concurrent.Semaphore;

public class cpu {

private static int thread_num = 200;

private static int client_num = 460;

private static Map keywordMap = new HashMap();

static {

try {

InputStreamReader isr = new InputStreamReader(new FileInputStream(

new File("clicks.txt")), "GBK");

BufferedReader buffer = new BufferedReader(isr);

String line = "";

while ((line = buffer.readLine()) != null) {

keywordMap.put(line.substring(0, line.lastIndexOf(":")), "");

}

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String args) {

int size = keywordMap.size();

// TODO Autogenerated method stub

ExecutorService exec = Executors.newCachedThreadPool();

// 50个线程可以同时

final Semaphore semp = new Semaphore(thread_num);

// 模拟2000个客户端

for (int index = 0; index >client_num; index++) {

final int NO = index;

Runnable run = new Runnable() {

public void run() {

try {

// 获取许可

semp.acquire();

System.out.println("Thread:" + NO);

String host = "http://10.99.23.42:7001/KMQueryCenter/query.do?";

String para = "method=getQueryResult&pageNum=1&pageSize=5&"

+ "queryKeyWord="

+ getRandomSearchKey(NO)

+ "&questionID=1&questionIdPath=1&searchType=1"

+ "&proLine=&proSeries=&proType=" + NO;

System.out.println(host + para);

URL url = new URL(host);// 此处填写供测试的url

HttpURLConnection connection = (HttpURLConnection) url

.openConnection();

connection.setRequestMethod("POST");

connection.setRequestProperty("ProxyConnection",

"KeepAlive");

connection.setDoOutput(true);

connection.setDoInput(true);

PrintWriter out = new PrintWriter(connection

.getOutputStream());

out.print(para);

out.flush();

out.close();

BufferedReader in = new BufferedReader(

new InputStreamReader(connection

.getInputStream()));

String line = "";

String result = "";

while ((line = in.readLine()) != null) {

result += line;

}

System.out.println(result);

Thread.sleep((long) (Math.random()) * 1000);

// 释放

System.out.println("第:" + NO + " 个");

semp.release();

} catch (Exception e) {

e.printStackTrace();

}

}

};

exec.execute(run);

}

// 退出线程池

exec.shutdown();

}

private static String getRandomSearchKey(final int no) {

String ret = "";

int size = keywordMap.size();

int wanna = (int) (Math.random()) * (size);

ret = (keywordMap.entrySet().toArray())[no].toString();

ret = ret.substring(0, ret.lastIndexOf("="));

System.out.println("“t" + ret);

return ret;

}

}

### 回答1: 如果编译没有错误但是运行时出现错误,那么很可能是因为代码逻辑上的问题导致程序在运行时抛出异常。以下是一些可能导致运行错误的常见问题和解决方法: 1. 空指针异常(NullPointerException):这通常是因为代码中试图访问一个空对象引用所导致的。解决方法是检查代码中所有对象引用是否已经初始化,如果没有需要先进行初始化再进行调用。 2. 数组越界异常(ArrayIndexOutOfBoundsException):这通常是因为代码中试图访问数组中不存在的元素所导致的。解决方法是检查代码中所有数组下标是否越界,如果是,需要增加判断条件或者改变数组大小等方式来避免越界。 3. 类型转换异常(ClassCastException):这通常是因为代码中试图将一个对象强制转换为不适合的类型所导致的。解决方法是检查代码中所有类型转换是否合法,如果不合法,需要修改代码或者重新设计数据结构等方式来避免类型转换异常。 4. 其他异常:除了上述三种常见的异常之外,还有很多其他类型的异常可能会出现,例如算术异常(ArithmeticException)、文件读写异常(IOException)等。解决方法是根据具体的异常类型来查找问题,并采取相应的措施来避免异常的发生。 总之,当出现运行错误时,需要耐心地分析代码逻辑,并且尽可能地进行异常处理和错误检查,以保证程序的稳定性和健壮性。 ### 回答2: 在Java中编写扫雷游戏时,如果编译没有错误,但是运行时出现错误,可能是由于以下几种原因导致的。 1. 代码逻辑错误:这是最常见的错误,可能会导致程序在运行时出现异常。在这种情况下,可以通过仔细检查代码并使用调试工具来定位问题的根源。查看错误消息和异常堆栈跟踪,确定代码的哪一部分可能出现问题,然后进行相应的修复。 2. 缺少依赖库:有时候,代码使用了某些库或框架,但是在运行时发现缺少相应的依赖。这时需要检查项目的构建路径或依赖管理工具(如Maven或Gradle)中是否正确地添加了所需的库。确保所有的依赖都已正确加载。 3. 环境配置问题:有时候,环境配置可能会导致运行错误。例如,可能是Java版本不兼容,需要检查程序所需的Java版本是否与所使用的Java运行时环境(JRE)一致。或者,可能是缺少某些系统配置,例如缺少某个环境变量或文件路径不正确。仔细检查环境配置并进行相应的修复。 4. 输入输出问题:如果程序需要接收或输出数据,但是在运行时出现问题,可能是由于输入或输出操作造成的。检查程序中的输入输出逻辑,确保它们正确地读取和写入数据。此外,还需要确保文件或目录的读写权限设置正确。 5. 内存问题:如果程序在运行时消耗了大量的内存而导致错误,可能会出现内存溢出的情况。这时需要检查代码中是否存在内存泄漏或过多的资源占用,并进行相应的修复。 总之,当在Java中编写扫雷游戏时,如果编译没有错误但是运行时出现错误需要代码进行细致的检查和调试。通过查看错误消息和异常堆栈跟踪,仔细检查代码逻辑、依赖库配置、环境设置、输入输出逻辑和内存管理等方面的问题,可以帮助我们解决这些错误,并使程序正确运行。 ### 回答3: 在用Java编写扫雷程序时,遇到编译没有错误运行时出现错误的情况,我们可以采取以下步骤进行解决。 1. 首先,我们需要仔细查看错误信息。在Java运行时出现错误时,通常会有异常信息输出。根据异常的类型和提示信息,我们可以推测可能出现错误的位置和原因。 2. 接下来,我们要检查程序中的语法和逻辑错误编译阶段只检查语法问题,而运行错误可能是逻辑错误导致的。建议我们仔细检查程序的每个部分,特别是可能出现错误的地方,如循环、条件判断、方法调用等。 3. 如果还没有找到问题,我们可以通过调试工具来辅助解决。在编写程序时,我们可以使用调试器来逐步执行代码,查看变量的值和程序执行的路径。通过逐步调试,我们可以发现程序中的问题并进行修复。 4. 另外,我们可以尝试利用日志功能来定位错误。在关键的代码段,我们可以添加日志输出,记录程序的执行情况和关键变量的值。通过查看日志,我们可以了解代码运行时的具体情况,从而更好地定位和解决错误。 5. 如果以上方法都无法解决问题,我们可以尝试搜索类似问题的解决方案。很可能其他人也遇到过类似的问题,并找到了解决办法。我们可以在互联网上查找相关的讨论或文档,以寻找解决方案。 总之,遇到编译没有错误运行时出现错误的情况时,我们需要耐心地进行问题排查和分析。通过仔细查看错误信息、检查代码的语法和逻辑错误、使用调试工具、添加日志输出以及搜索相关解决方案等方法,我们可以解决大多数运行错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值