- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的包 alignmentparser
中,我有一个名为 Subject
的类,其中有一个要转换为 JSON 对象的字符串。在研究了如何实现这一目标之后,我找到了包 JSON-java ,我将其下载并作为名为 JSON
的子目录放入我的包中。
我的类的包语句声明packagealignmentparser;
。我将 JSON 子目录中每个文件中的包语句更新为 packagealignmentparser.JSON;
。
现在我无法编译我的 TestRunner
类(取决于 Subject
)。我收到这些错误消息:
./alignmentparser/Subject.java:85: error: cannot find symbol
JSONObject json = new JSONObject(sb.toString());
^ symbol: class JSONObject location: class Subject
./alignmentparser/Subject.java:85: error: cannot find symbol
JSONObject json = new JSONObject(sb.toString());
^ symbol: class JSONObject location: class Subject
我该怎么做才能克服这些错误消息?
编辑:这是完整的代码,以防万一出现我不知道的错误。
Subject.java
package alignmentparser;
import java.net.*;
import java.io.*;
import java.util.Scanner;
import java.util.regex.*;
public class Subject {
private String id;
private String sequence;
// Position on subject where alignment with query begins, inclusive
private int start;
// Position on subject where alignment with query ends, inclusive
private int end;
public Subject(String accessNum, int hitFrom, int hitTo, String seq) {
id = accessNum;
sequence = seq;
start = hitFrom;
end = hitTo;
getEntireSubject();
}
// Getters
public String getSequence() {
return sequence;
}
public int getStart() {
return start;
}
public int getEnd() {
return end;
}
// Fetches accession number from NCBI
// https://www.ncbi.nlm.nih.gov/books/NBK25498/#chapter3.Application_2_Converting_access
private void getEntireSubject() {
try {
// e post to Entrez
String link = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/epost.fcgi?db=nucleotide&id=" + id;
URLConnection connection = new URL(link).openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
connection.connect();
BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
String webEnv = "";
String queryKey = "";
// Put together string to be scanned to find patterns
StringBuilder sb = new StringBuilder();
String line;
while ((line = r.readLine()) != null) {
sb.append(line);
}
String result = sb.toString();
// Specify patterns to search for
String queryKeyRegEx = "<QueryKey>(\\d+)<\\/QueryKey>";
String webEnvRegEx = "<WebEnv>(\\S+)<\\/WebEnv>";
// Create Pattern objects
Pattern queryKeyPattern = Pattern.compile(queryKeyRegEx);
Pattern webEnvPattern = Pattern.compile(webEnvRegEx);
// Create Matcher objects
Matcher queryKeyMatcher = queryKeyPattern.matcher(result);
if (queryKeyMatcher.find()) {
queryKey = queryKeyMatcher.group(1);
System.out.println(queryKey);
}
Matcher webEnvMatcher = webEnvPattern.matcher(result);
if (webEnvMatcher.find()) {
webEnv = webEnvMatcher.group(1);
System.out.println(webEnv);
}
// e fetch to Entrez
link = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&query_key="+queryKey+"&WebEnv="+webEnv+"&usehistory=y";
connection = new URL(link).openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
connection.connect();
r = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
sb = new StringBuilder();
while ((line = r.readLine()) != null) {
sb.append(line);
}
JSONObject json = new JSONObject(sb.toString());
System.out.println(json);
} catch (Exception e) {
System.out.println(e);
}
}
}
TestRunner.java
package alignmentparser;
import java.util.*;
class TestRunner {
private String query = "ATCCTGTCTGTGTTAGGAG-AGTCTACTTC-TTAACNGAGGGATTCANTNTTTCCTGCANAGGCGGCCGTCNATGAANACCCTGTTTGTGGACAGCTACNGNGAGATGCTTTTNTTTCTGCAGTCACTGTTCATGCTGGCCACCGTGGTGCTGTACTTCANCCACCTCAAGGAGTATGTGGCTTCCATGGTATTCTCCCTGGCCTTGGGCTGGNCCAACATGCTCTACTACNCCCGCGGTTTCCAGCAGANGGGCATCTATGCCGTCATGATANANAANATGATCCTGAGAGACCTGTGCCGTTTCATGTTTGTCTACGTCGTCTTNTTGTTCGGNTTTTCCACAGCGGNGGTGACGCTGATTGAAGACGGNAANAATGACTCCCTGCCGTCTGAGTCCACGTCGCACAGGNGGNGGGGGCCTGCCTGCANGCCCCCCGATAGCTCCTACAACAGCCTGTACTCCACCTGCCTGGAGCTGTTCAAGTTCACCATCGGCATGGGCGACCTGGANTTCACTGANAACTATGACTTCAAGGCTGTCTTCATCATCCTGCTGCTGGCCTATGTAATTCTCACCTACATCCTCNTGCTCAACATGCTNATCGCCCTCNTGGGTGAGACTGTCAACAAGATCGCACAGNNAGAGCAAGAACATCTGGAANCTGCAGAGAGCCATCACCATCCTGNACACGGAGAAGAGCTTCCTTAAGTGCATGAGGAAGGCCTTCCGCTCAGGCAAGCTGCNTGCANGTGGGGTACACACCTGATGGCAAGGACGACTACCGG";
private String midline = "||||||||||||||||||| |||||||||| || | |||||||||| | ||||||||| ||||||||||| ||||| ||||||||||||||||||||| | ||||||||||| |||||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||| |||||||||||||||||| |||||||||||||||||||||| | || ||||||||||||||||||||||||||||||||||||||| ||||||| |||||||| ||||||||||||| ||||||||||||||||||||| || |||||||||||||||||||||||||||||||||||| || ||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||| ||||||||| ||||||||||||||||||||||||||||| ||||||||||||||||||| |||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |||| ||||||||||||||||||||||||||||||||||||";
private Subject subj = new Subject("NM_080704", 1710, 2495, "ATCCTGTCTGTGTTAGGAGGAGTCTACTTCTTTTTCCGAGGGATTCAGTATTTCCTGCAGAGGCGGCCGTCGATGAAGACCCTGTTTGTGGACAGCTACAGTGAGATGCTTTTCTTTCTGCAGTCACTGTTCATGCTGGCCACCGTGGTGCTGTACTTCAGCCACCTCAAGGAGTATGTGGCTTCCATGGTATTCTCCCTGGCCTTGGGCTGGACCAACATGCTCTACTACACCCGCGGTTTCCAGCAGATGGGCATCTATGCCGTCATGATAGAGAAGATGATCCTGAGAGACCTGTGCCGTTTCATGTTTGTCTACATCGTCTTCTTGTTCGGGTTTTCCACAGCGGTGGTGACGCTGATTGAAGACGGGAAGAATGACTCCCTGCCGTCTGAGTCCACGTCGCACAGGTGGCGGGGGCCTGCCTGCAGGCCCCCCGATAGCTCCTACAACAGCCTGTACTCCACCTGCCTGGAGCTGTTCAAGTTCACCATCGGCATGGGCGACCTGGAGTTCACTGAGAACTATGACTTCAAGGCTGTCTTCATCATCCTGCTGCTGGCCTATGTAATTCTCACCTACATCCTCCTGCTCAACATGCTCATCGCCCTCATGGGTGAGACTGTCAACAAGATCGCACAGG-AGAGCAAGAACATCTGGAAGCTGCAGAGAGCCATCACCATCCTGGACACGGAGAAGAGCTTCCTTAAGTGCATGAGGAAGGCCTTCCGCTCAGGCAAGCTGC-TGCAGGTGGGGTACACACCTGATGGCAAGGACGACTACCGG");
public static void main(String[] args) {
TestRunner analyzer = new TestRunner();
analyzer.identifyMismatches();
analyzer.identifyResidue(547);
}
/**
* Identifies the residue encoded by the codon at the specified codon count.
*/
private void identifyResidue(int pos) {
HashMap<String, ArrayList<String>> codons = assembleCodonMap();
// Set base position of first codon in the CDS (to be retrieved from GenBank later)
int posOfCDS = 276;
// Adjust given codon count to account for any difference between CDS / query length
// NOTE: Subtract 3 to account for conversion between codon count and base count
int adjustedPos = (pos * 3) - (subj.getStart() - posOfCDS) - 3;
System.out.println(adjustedPos + subj.getStart());
if (adjustedPos < 0) {
System.out.println("Codon " + pos + " is not viewable in this alignment.");
//System.out.println("You can view codons " + (posFirstCodon + 1) + " through " + ((2495 - 276) / 3));
}
// Get codon
String found = "";
for (int i = 0; i < query.length(); i += 3) {
if (i == adjustedPos) {
found = query.substring(i, i + 3);
System.out.println(found + " at " + (i + subj.getStart()));
}
}
// Identify residue that codon translates to
for (String codon : codons.keySet()) {
if (codons.get(codon).contains(found)) {
System.out.println("Residue is " + codon);
}
}
}
private HashMap<String, ArrayList<String>> assembleCodonMap() {
ArrayList<String> ala = new ArrayList<String>();
ala.add("GCT");
ala.add("GCC");
ala.add("GCA");
ala.add("GCG");
ArrayList<String> arg = new ArrayList<String>();
arg.add("CGT");
arg.add("CGC");
arg.add("CGA");
arg.add("CGG");
arg.add("AGA");
arg.add("AGG");
ArrayList<String> asn = new ArrayList<String>();
asn.add("AAT");
asn.add("AAC");
ArrayList<String> asp = new ArrayList<String>();
asp.add("GAT");
asp.add("GAC");
ArrayList<String> cys = new ArrayList<String>();
cys.add("TGT");
cys.add("TGC");
ArrayList<String> gln = new ArrayList<String>();
gln.add("CAA");
gln.add("CAG");
ArrayList<String> glu = new ArrayList<String>();
glu.add("GAA");
glu.add("GAG");
ArrayList<String> gly = new ArrayList<String>();
gly.add("GGT");
gly.add("GGC");
gly.add("GGA");
gly.add("GGG");
ArrayList<String> his = new ArrayList<String>();
his.add("CAT");
his.add("CAC");
ArrayList<String> ile = new ArrayList<String>();
ile.add("ATT");
ile.add("ATC");
ile.add("ATA");
ArrayList<String> leu = new ArrayList<String>();
leu.add("TTA");
leu.add("TTG");
leu.add("CTT");
leu.add("CTC");
leu.add("CTA");
leu.add("CTG");
ArrayList<String> lys = new ArrayList<String>();
lys.add("AAA");
lys.add("AAG");
ArrayList<String> met = new ArrayList<String>();
met.add("ATG");
ArrayList<String> phe = new ArrayList<String>();
phe.add("TTT");
phe.add("TTC");
ArrayList<String> pro = new ArrayList<String>();
pro.add("CCT");
pro.add("CCC");
pro.add("CCA");
pro.add("CCG");
ArrayList<String> ser = new ArrayList<String>();
ser.add("TCT");
ser.add("TCC");
ser.add("TCA");
ser.add("TCG");
ser.add("AGT");
ser.add("AGC");
ArrayList<String> thr = new ArrayList<String>();
thr.add("ACT");
thr.add("ACC");
thr.add("ACA");
thr.add("ACG");
ArrayList<String> trp = new ArrayList<String>();
trp.add("TGG");
ArrayList<String> tyr = new ArrayList<String>();
tyr.add("TAT");
tyr.add("TAC");
ArrayList<String> val = new ArrayList<String>();
val.add("GTT");
val.add("GTC");
val.add("GTA");
val.add("GTG");
HashMap<String, ArrayList<String>> codons = new HashMap<String, ArrayList<String>>();
codons.put("alanine", ala);
codons.put("arginine", arg);
codons.put("asparagine", asn);
codons.put("aspartic acid", asp);
codons.put("cysteine", cys);
codons.put("glutamine", gln);
codons.put("glutamic acid", glu);
codons.put("glycine", gly);
codons.put("histidine", his);
codons.put("isoleucine", ile);
codons.put("leucine", leu);
codons.put("lysine", lys);
codons.put("methionine", met);
codons.put("phenylalanine", phe);
codons.put("proline", pro);
codons.put("serine", ser);
codons.put("threonine", thr);
codons.put("tryptophan", trp);
codons.put("tyrosine", tyr);
codons.put("valine", val);
return codons;
}
/**
* Prints out mismatches in the alignment of subject and query.
* Base positions are referenced from subject.
*/
private void identifyMismatches() {
// Loops through each character in the midline
for (int i = 0; i < midline.length(); i++) {
// If character is a space, denoting a mismatch
if (midline.charAt(i) == ' ' && query.charAt(i) != 'N') {
// Print out the characters at the same position in subject & query
System.out.println(subj.getStart() + i);
System.out.println(subj.getSequence().charAt(i) + ">" + query.charAt(i));
}
}
}
}
编辑2:我的文件夹结构的屏幕截图。
最佳答案
首先,除非您打算修改 JSON-java
的源代码,否则您实际上不需要将项目作为源代码包含在内。只需修改您的项目依赖项以包含 JSON-java jar 工件或将其包含在类路径中,以便运行时可以找到必要的类。
其次,如果你确实想将项目作为源代码包含进来并自己编译,你仍然不需要改变项目的包结构。您可以编译它并在应用程序外部构建工件(jar)。
第三,如果您仍然想将项目作为源代码包含在您自己的包中,则需要修改该项目中每个类的包声明。看起来你已经尝试过了。但要确保您已将 JSONObject 类的包名称从 org.json 更改为alignmentparser.org.json?另外,当您想在自己的代码中使用这些 JSON-java 类中的一个或多个时,您需要导入这些类。例如。 导入 org.json.JSONObject
。我在您的代码示例(Subject.java)中看到您没有这样做。一旦修复了包重命名并包含必要的类导入语句,您就不应该收到任何编译器错误。
关于java - 错误: Cannot find symbol -- How do I get my class to compile when it depends on a class in a subfolder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41657265/
我在运行 compile test:compile it:compile经常并且...希望将击键次数减少到类似 *:compile 的数量。 .不过,它似乎不起作用。 $ sbt *:compile
有人可以给我这个问题的提示(或整个解决方案!): 在 Clojurescript 项目中,如何自动将编译日期/时间硬编码在符号中,以便在使用应用程序时显示? 谢谢。 最佳答案 有多种解决方案: 使用l
我是 ember.js 框架的新手,使用 ruby on rails 和 ember.debug.js -v 1.10.1(最新版本)。我一直在网上看到 ember 更改了这个最新的补丁,但我不知
我不是 Fortran 程序员(只是短暂的经验),但我需要编译一个部分用 F77 编写的程序。在我之前有人用 Absoft 编译器编译过它,但现在我需要在另一台机器上用 g77 重复这个过程。对于 A
我运行命令 mvn clean package 我得到了上面的错误我的 pom 是: http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0
我有以下问题。 我想在测试编译阶段排除一些.java文件(** / jsfunit / *。java),另一方面,我想在编译阶段包括它们(id我使用tomcat启动tomcat:运行目标) ) 我的p
符合 wikipedia A compiler is a computer program (or set of programs) that transforms source code writt
我想构建项目,但出现如下错误: 无法执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile
当我通过右键单击项目名称进行 Maven 安装时,出现以下错误: [INFO] Scanning for projects... [WARNING] [WARNING] Some proble
我是 Maven 的新手,我想将我的应用程序导入到 Maven。和以前一样,我想将我的 ejb 项目中的类引用到我的 war 项目中。我在类中没有错误,但是如果我在我的父项目上安装 maven,那么我
当我将 ASP.NET Web 应用程序部署到生产环境时,我使用配置转换来删除 debug="true"来自 .但是,就在今天,我注意到 web.config 中的另一个部分如下所示:
This question already has answers here: Maven Compilation Error: (use -source 7 or higher to enable
我正在使用 Maven 3.0.5 和 Spring Tool Source 3.2 并安装了 Maven 插件。当我尝试执行“运行方式---> Maven 安装”时,出现以下错误: [INFO] S
我试图用 AngularJS 创建我自己的递归指令,它调用自己以漂亮的 JSON 格式转换 View 中的对象。好吧,首先我使用 ng-include 调用带有模板的脚本,在其中使用 ng-if 验证
可以通过 @suppress annotation使用Google的Closure Compiler在每个文件的基础上禁止显示警告。但是,似乎无法同时抑制多个警告-例如globalThis和check
假设一个拥有 10 到 20 年经验的熟练开发人员从未构建过编译器或模拟器,哪一个会更具挑战性? 你能比较一下会成为障碍的问题吗? 谢谢。 最佳答案 仿真和编译是完全不同的,但由于两者都被认为是“低级
最近发现Vim中有一个命令叫compiler。您可以使用任何常见的编译器(例如,:compiler gcc、:compiler php 等)来调用它,但它似乎没有任何立竿见影的效果。 我在联机帮助页上
我试图从 spring.io 指南中部署最简单的应用程序 Guide 但是我有一些麻烦.. 我做了什么: 创建的项目。 (来自 spring.io 教程) 下载 heroku CLI 在 Intell
每当进行 Maven Build..>clean install 时,我都会遇到此错误。我尝试过使用不同版本的插件并添加 testFailureIgnore 属性,但问题仍然存在。请找到下面的 POM
我有一个 web 应用程序,我尝试使用 maven 进行编译,不幸的是,在执行 mvn clean package 时它不起作用。 stackoverflow 上有很多问题看起来都一样,但没有解决了我
我是一名优秀的程序员,十分优秀!