• [技术探讨] 官方JDK-gcc中读取文件存在的问题
    本帖最后由 MikeoPerfect 于 2018-3-20 13:45 编辑在io.cpp中我单步调试的时候,发现好像官方文档中给出的代码是存在一些问题的,,虽然最终不会影响结果,但会影响运行时间,如果数据量足够大的话确实是一个很大的性能问题!!,这里的fgets好像就是存在问题的,官方的代码中的fgets那行代码本来的意思是去判断是空行则continue,但是最终的行数结果是空行依然被统计了,不知道我说的对不对?? 12888 12886
  • [问题求助] 为什么jdk中是从1开始的
    在jdk中,我看数组循环是从1开始的,不应该从0开始么,,请教!
  • JDK 10 本周将进入候选发布阶段,新特性抢先看
    Java 平台首席架构师 Mark Reinhold 近日在邮件列表上表示,按计划,JDK 10 将于 2 月 8 日星期四进入候选发布(Release Candidate)阶段。他建议 JDK 10 在该阶段采用和 JDK 9 相同的发布流程,将 Bug 修复分为 P1 - P5 五个不同的级别。候选阶段将重点修复那些能直接影响 JDK 10 能否成功发行的 P1 级错误,并将那些非关键或短期内无法解决的 P1 级错误推迟处理。此外,所有 P2 - P5 级的错误均留给后续版本修复。 JDK 10 的十二项新特性已确定,包括: JEP 286: 局部变量的类型推导。该特性在社区讨论了很久并做了调查,可查看 JEP 286 调查结果。 JEP 296: 将 JDK 的多个代码仓库合并到一个储存库中。 JEP 304: 垃圾收集器接口。通过引入一个干净的垃圾收集器(GC)接口,改善不同垃圾收集器的源码隔离性。 JEP 307: 向 G1 引入并行 Full GC。 JEP 310: 应用类数据共享。为改善启动和占用空间,在现有的类数据共享(“CDS”)功能上再次拓展,以允许应用类放置在共享存档中。 JEP 312: 线程局部管控。允许停止单个线程,而不是只能启用或停止所有线程。 JEP 313: 移除 Native-Header Generation Tool (javah) JEP 314: 额外的 Unicode 语言标签扩展。包括:cu (货币类型)、fw (每周第一天为星期几)、rg (区域覆盖)、tz (时区) 等。 JEP 316: 在备用内存设备上分配堆内存。允许 HotSpot 虚拟机在备用内存设备上分配 Java 对象堆。 JEP 317: 基于 Java 的 JIT 编译器(试验版本)。 JEP 319: 根证书。开源 Java SE Root CA 程序中的根证书。 JEP 322: 基于时间的版本发布模式。“Feature releases” 版本将包含新特性,“Update releases” 版本仅修复 Bug 。 此外,JDK 11 的页面已经出现了四个 JEP ,包括:动态类文件常量(JEP 309,Dynamic Class-File Constants)、低开销垃圾收集器 Epsilon(JEP 318)、移除 Java EE 和 CORBA 模块(JEP 320),以及 Lambda 参数的本地变量语法(JEP 323)。JDK 11 计划于 2018 年 9 月发布,并有望成为新的 LTS 版本。
  • [教程指导] Kafka-Manager编译&安装&启动
    本帖最后由 那人好像一条狗 于 2018-6-8 11:52 编辑Kafka-Manager是由Yahoo公司开源的一款基于Web的Kafka管理工具,可以对Kafka集群中的Broker、Topic、Partition、Consumer等进行监控查看和管理。 1 获取Kafka-Manager编译包 Kafka-Manager的官网上只提供了源码包,并没有提供编译包,因此获取Kafka-Manager编译包有两种途径: (1)直接从网上获取其他人自己编译好的Kafka-Manager编译包; (2)从官网下载Kafka-Manager源码包,然后自己手动编译。 此种方式见本文最后,非开发人员可以不关注。 1.1 直接获取已有Kafka-Manager编译包 由于Kafka-Manager是利用SBT进行编译构建的,这个过程由于网络等限制比较麻烦和耗时。可以直接从网上获取别人已经编译好的Kafka-Manager包,这样就直接省去了1.2整个章节中的工作。 Kafka-Manager编译包可以直接从下面这个链接获取: http://blog.wolfogre.com/posts/kafka-manager-download/ 下载完成后,直接到本文中的《2 Kafka-Manager部署运行部分》 2 Kafka-Manager部署运行 由于当前MRS集群中根据是否开启了Kerberos认证分成非安全集群和安全集群两种模式。2.1 非安全模式Kafka集群(未开启Kerberos认证)2.1.1 修改Kafka JMX监控的相关配置 由于当前集群中在安装配置Kafka的监控时,默认的只允许Kafka服务所在的本节点访问当前节点的JMX服务;这样导致运行在其他节点上的Kafka-Manager无法访问JMX服务,从而无法获取相关的监控信息。所以需要进行以下配置修改: 到Manager的管理界面上,修改Kafka服务的服务配置,如下图所示: 将KAFKA_JMX_IP配置项修改为${BROKER_IP} 然后再保存配置,重启Kafka服务,以便让修改的配置生效。 2.1.2 修改Kafka-Manager中关于访问JMX服务的配置 说明: MRS 1.7.1以前版本需要做2.1.2步骤,1.7.1不需要 由于当前集群中的Kafka服务在开启JMX服务时,JMX服务的访问地址的后缀为kafka,Kafka-Manager中的访问JMX服务的地址的后缀为jmxrmi,因此需要修改Kafka-Manager中的访问地址的后缀。 修改kafka-manager-master/app/kafka/manager/jmx/KafkaJMX.scala中的doWithConnection方法中的urlString,即第36行【限Kafka-Manager 2.11-1.3.3.17版本】。 原UrlString:[code]val urlString = s"service:jmx:rmi:///jndi/rmi://$jmxHost:$jmxPort/jmxrmi"[/code] 修改为: [code]val urlString = s"service:jmx:rmi:///jndi/rmi://$jmxHost:$jmxPort/kafka"[/code] 2.1.3 将前面编译生成的kafka-manager-1.3.3.17.zip包进行解压,比如存放在/opt目录下2.1.4 修改Kafka-Manager的配置1、修改Kafka-Manager中关于Kafka集群对应的Zookeeper集群的配置以及与consumer相关的配置:[code]cd /opt/kafka-manager-1.3.3.17 vi conf/application.conf kafka-manager.zkhosts="IP1:24002" vi conf/application.conf kafka-manager.consumer.properties.file=/opt/kafka-manager-1.3.3.17/conf/consumer.properties #该consumer.properties在kafka-manager-1.3.3.17/conf目录中,最好写全路径[/code]2、修改/opt/kafka-manager-1.3.3.17/conf/consumer.properties文件:[code]cd /opt/kafka-manager-1.3.3.17 vi /conf/consumer.properties [/code]3、修改Kafka-Manager相关日志文件的存放路径[code]cd /opt/kafka-manager-1.3.3.17[/code] 修改conf/logback.xml和conf/logger.xml文件 将和两个地方修改为你期望的日志存放路径。 2.1.5 启动Kafka-Manager[code]cd /opt/kafka-manager-1.3.3.17 nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=9000 &[/code]如果需要使用JMX Polling,在启动之前先执行以下命令 export JMX_PORT=21006 在浏览器中输入IP1:9000,若出现以下界面则说明Kafka-Manager启动成功。 2.2 安全模式Kafka集群(开启Kerberos认证) 2.2.1 修改Kafka JMX监控的相关配置 由于当前集群中在安装配置Kafka的监控时,默认的只允许Kafka服务所在的本节点访问当前节点的JMX服务;这样导致运行在其他节点上的Kafka-Manager无法访问JMX服务,从而无法获取相关的监控信息。1、到Manager的管理界面上,修改Kafka服务的服务配置,如下图所示: 将KAFKA_JMX_IP配置项修改为${BROKER_IP} 然后再保存配置,重启Kafka服务,以便让修改的配置生效。 2.2.2 修改Kafka-Manager中关于访问JMX服务的配置 说明: MRS 1.7.1以前版本需要做2.2.2步骤,1.7.1不需要 由于当前集群中的Kafka服务在开启JMX服务时,JMX服务的访问地址的后缀为kafka,Kafka-Manager中的访问JMX服务的地址的后缀为jmxrmi,因此需要修改Kafka-Manager中的访问地址的后缀。 修改kafka-manager-master/app/kafka/manager/jmx/KafkaJMX.scala中的doWithConnection方法中的urlString,即第36行【限Kafka-Manager 2.11-1.3.3.17版本】。 原UrlString:[code]val urlString = s"service:jmx:rmi:///jndi/rmi://$jmxHost:$jmxPort/jmxrmi"[/code] 修改为:[code]val urlString = s"service:jmx:rmi:///jndi/rmi://$jmxHost:$jmxPort/kafka"[/code] 2.2.7 启动Kafka-Manager 在启动kafka manager之前先做以下几件事情 1. 修改kafka服务端,将allow.everyone.if.no.acl.found配置成true。原因是Kafka Manager会调用SimpleConsumer API去获取每个consumer的offset,新SimpleConsumer的API不支持认证,即需要开启不认证也能消费。 2. 导出环境变量 export JAVA_OPTS="-Djava.security.auth.login.config=/opt/kafka-manager-1.3.3.17/conf/jaas.conf -Dzookeeper.server.principal=zookeeper/hadoop.hadoop.com -Djava.security.krb5.conf=/opt/huawei/Bigdata/MRS_1.7.0/etc/1_4_KerberosClient/kdc.conf -Dzookeeper.request.timeout=120000 -Dkerberos.domain.name=hadoop.hadoop.com" 注意将路径和kerberos.domain.name替换成实际值 [code]/opt/kafka-manager-1.3.3.17 nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=9000[/code] 在浏览器中输入IP1:9000,若出现以下界面则说明Kafka-Manager启动成功。 附录: 利用源码手动编译 Kafka-Manager的编译打包是基于SBT的,因此在编译Kafka-Manager要先预先准备以及Java JDK与SBT。1.2.1 配置Java JDK 这里要求JDK的版本为JDK 1.8。具体的JDK的安装与配置,比较常见,这里就不赘述。1.2.2 安装SBT 到SBT官网:http://www.scala-sbt.org/download.html 下载SBT压缩包。将下载的SBT压缩包进行解压并配置SBT环境变量。【目前先讨论下Windows环境下的编译】。 本文主要是针对Windows操作系统下的SBT的安装,至于Linux操作系统下SBT的安装可自行搜索安装。1. Windows环境: 假设解压的SBT放在D:\sbt目录。 添加SBT_HOME环境变量,[code]SBT_HOME ="D:\sbt"[/code] 并在Path中追加[code];%SBT_HOME%\bin;[/code] 然后通过在命令行窗口中输入sbt,如果sbt被识别则说明已经安装配置成功。1.2.3 配置SBT 由于在利用SBT工具编译项目时,需要下载很多SBT工程编译时依赖的jar包等资源,由于SBT默认的资源都是在国外,由于网络原因可以会很慢甚至无法连接,所以为了能更快速地下载这些资源,可以对SBT进行一些配置。1、 先配置SBT的本地资源存放目录,以便在下载一次后可以为之后的编译使用。 打开“SBT安装目录:\conf\sbtconfig.txt”文件,在文件最后追加[code]-Dsbt.boot.directory=D:/boot/ -Dsbt.global.base=D:/.sbt -Dsbt.ivy.home=D:/.ivy2[/code]2、 在“SBT安装目录:\conf\”目录下,新建文件repo.properties文件,将以下内容复制到文件中。[code][repositories] local store_1:http://repo.typesafe.com/typesafe/ivy-releases/ store_2:http://repo2.maven.org/maven2/ typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly typesafe2: http://repo.typesafe.com/typesafe/releases/ sbt-plugin: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/ sonatype: http://oss.sonatype.org/content/repositories/snapshots uk_maven: http://uk.maven.org/maven2/ ibibli: http://mirrors.ibiblio.org/maven2/ repo2: http://repo2.maven.org/maven2/ aliyun: http://maven.aliyun.com/nexus/content/groups/public comp-maven:http://mvnrepository.com/artifact/ store_cn:http://maven.oschina.net/content/groups/public/ store_mir:http://mirrors.ibiblio.org/maven2/ store_0:http://maven.net.cn/content/groups/public/ sbt-releases-repo: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext] sbt-plugins-repo: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext] maven-central: http://repo1.maven.org/maven2/[/code]3、 打开“SBT安装目录:\conf\sbtconfig.txt”文件,在文件最后追加:[code]-Dsbt.repository.config= SBT安装目录:/conf/repo.properties[/code]4、 如果依旧有一些repo无法访问,可以考虑为SBT设置代理,由于走HTTPS时,由于证书问题,还是走HTTP较好。 打开“SBT安装目录:\conf\sbtconfig.txt”文件,在文件最后追加[code]-Dsbt.repository.secure=false #配置项告知SBT使用HTTP而非HTTPS来更新和下载artifacts -Dhttp.proxyHost= proxy host -Dhttp.proxyPort= proxy port -Dhttp.proxyUser=用户名 -Dhttp.proxyPassword=密码[/code] 1.2.4 利用SBT编译Kafka-Manager1、下载Kafka-Manager工程 到https://github.com/yahoo/kafka-manager界面上直接下载Kafka-Manager工程。2、将步骤1中下载的kafka-manager-master.zip文件进行解压,并进入kafka-manager-master目录,如:D:\kafka-manager-master。[code]cd D:\kafka-manager-master sbt clean dist[/code] 该步骤由于需要下载很多的jar包等资源文件,比较耗时,需要耐心等待。 如果最后出现如下输出,则说明Kafka-manager编译成功。 3、到D:\kafka-manager-master\target\universal目录中找到编译好的kafka-manager包即kafka-manager-1.3.3.17.zip。
  • 下一代Java新特性展望——Java JDK 10
    本帖最后由 码小玩 于 2017-12-27 09:55 编辑今天推荐的内容包括:Java JDK 10:下一代Java新特性展望、我们该如何在敏捷软件开发领域始终占据优势、开源软件业务中的四大核心成功模式和区块链技术的十种重要现实用例等。 7757 一、Java JDK 10:下一代Java新特性展望 原文标题:Java JDK 10: What new features to expect in the next Java 开发者朋友们可能已经习惯了2017年9月发布的Java 9,但距离下一代Java的正式面世只剩下几个月时间。今年12月中旬,计划内的Java Development Kit 10升级正逐渐放缓脚步。在今天的文章中,我们将对Java JDK 10作出全面概述。 1. JDK何时正式发布 2. 在哪里下载JDK 10 3. JDK 10中的新型与改进功能 4. JDK 10的预期发展阶段 5. Java长期发展路线图 二、我们该如何在敏捷软件开发领域始终占据优势? 原文标题:How to excel in agile software development 7758 如果你身为领导者或者正参与敏捷开发流程,且选择了Scrum等敏捷模式,那么接下来无疑需要建立基本流程以确保产品所有者、客户需求同开发团队之间协调一致,从而顺利实现结果。那么,对于相关负责团队来说,他们该如何确保应用能够随时准备就绪,采用简化流程,从而将变的更轻松推向生产环境及其它计算环境?在今天的文章中,我们将逐步找出答案。 1. 在敏捷开发中定义并解决技术债务 2. 在敏捷开发中实现质量保证 3. 发现代码分支标准 4. 利用代码审查提升质量与开发者协作性 5. 实现持续集成与持续交付 6. 利用敏捷驱动自动化与流程改进 三、开源软件业务中的四大核心成功模式 原文标题:4 successful open source business models to consider 在第一次接触开源时,我感到其建立业务的思路似乎有些反直觉。然而,随着对这一活动的愈发熟悉,我意识到开源软件公司并不是什么天方夜谭。正如GNU项目创始人Richard Stallman所言,“Free是指自由而非免费”。而如果屏幕前的你有意以开源为核心建立一家企业,那么,以下四种成功模式无疑值得考量。 1. 支持与服务 2. 付费额外功能 3. SaaS 4. “打赏”或“付费获取需要的功能” 四、区块链技术的十种重要现实用例 原文标题:How to Use Blockchain: 10 Use Cases 许多专家预测,区块链技术将很快对全球企业产生巨大影响。Gartner将其视为“将引发整个行业的改革”,而Forrester则认为只要得到适当实施,区块链将能够支持新的业务与信任模式。但抛开这些乐观的整体性展望,我们具体该将其怎样落地到实际用例当中?今天的文章将给出一些令人信服的思路。 1. 食物(及其它货物)追踪 2. 安全软件开发 3. 数字化内容管理 4. 医疗记录 5. 贷款审批 6. 保险理赔 7. 审计追踪 8. 投票 9. 智能合同 10. 加密货币
  • [行业前沿] CSE环境准备中,JDK版本要求为1.8版本,但JDK官方下载中,找不到1.8?
    http://support.huaweicloud.com/qs-cse/cse_qs_0003.html环境准备操作步骤 [*]安装JDK [list=a] [*]JDK版本JDK版本要求1.8版本。 [*]JDK下载请到JDK官方地址下载。 ================================================== http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html Java SE Development Kit 9 DownloadsThank you for downloading this release of the Java™ Platform, Standard ** Development Kit (JDK™). The JDK is a development environment for building applications, and components using the Java programming language.The JDK includes tools useful for developing and testing programs written in the Java programming language and running on the Java platform.See also: [*]Java Developer Newsletter: From your Oracle account, select Subscriptions, expand Technology, and subscribe to Java. [*]Java Developer Day hands-on workshops (free) and other events [*]Java Magazine JDK 9.0.1 checksum [tr=rgb(224, 224, 224)]Product / File DescriptionFile SizeDownloadLinux304.99 MBjdk-9.0.1_linux-x64_bin.rpmLinux338.11 MBjdk-9.0.1_linux-x64_bin.tar.gzmacOS382.11 MBjdk-9.0.1_osx-x64_bin.dmgWindows375.51 MBjdk-9.0.1_windows-x64_bin.exeSolaris SPARC206.85 MBjdk-9.0.1_solaris-sparcv9_bin.tar.gz
  • [技术干货] Java的安装
    本帖最后由 华为开源镜像站 于 2017-11-20 22:48 编辑 首先,下载JDK, 地址为: http://www.oracle.com/technetwor ... ownloads/index.html, 由于Windows和Linux的配置有一定差异,因此分别进行说明。 Windows 从官网下载JDK,如下图所示,直接运行exe可执行程序,默认安装即可。(备注:路径可以选择其他盘符,但是不建议路径中包含中文及特殊字符) 5185 安装好之后需要设置环境变量,以jdk1.8.0_151版本为例,进入到系统环境变量的管理界面:右键计算机图标=>属性=>高级系统设置=>环境变量 5186 在系统环境变量中,点击新建,输入变量名: JAVA_HOME, 输入变量值:C:\Program Files\Java\jdk1.8.0_151(地址请根据自身情况进行修改) 5188 打开PATH变量,在变量值的最前边添加:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 5189 新建变量名:CLASSPATH,变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 5187 Linux 从官网下载JDK,如下图所示,也可以通过curl命令下载,命令如下:[code]curl -O http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz[/code]5184 通过如下命令将下载后的压缩包解压至特定的目录,以/usr/local为例: [code]tar -zxvf -C /usr/local/ jdk-8u151-linux-x64.tar.gz[/code]在命令行中输入vim /etc/profile,编辑文件,在文件末尾增加如下的内容: [code]export JAVA_HOME=/usr/local/jdk-8u151 export JRE_HOME=/usr/local/jdk-8u151/jre export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin[/code]然后执行 source /etc/profile命令使设置生效。 验证JAVA windows打开CMD命令窗口,Linux打开终端端口,输入java -version命令,如果出现如下提示则Java安装成功。 5183
总条数:97 到第
上滑加载中