想了解线程“main”中的异常java.nio.file.InvalidPathException:索引2处的非法char:的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于java唯一索引异
想了解线程“ main”中的异常java.nio.file.InvalidPathException:索引2处的非法char <:>:的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于java唯一索引异常的相关问题,此外,我们还将为您介绍关于ios – 线程“main”中的异常java.lang.RuntimeException:无效的十六进制字符:v – APNS notnoop、Java Appium-线程“主”中的异常java.lang.ExceptionInInitializerError-由以下原因引起:java.lang.IllegalArgumentException、java – 线程“main”中的异常org.hibernate.MappingException:未知实体:、java.nio.file.InvalidPathException: Illegal char <:>的新知识。
本文目录一览:- 线程“ main”中的异常java.nio.file.InvalidPathException:索引2处的非法char <:>:(java唯一索引异常)
- ios – 线程“main”中的异常java.lang.RuntimeException:无效的十六进制字符:v – APNS notnoop
- Java Appium-线程“主”中的异常java.lang.ExceptionInInitializerError-由以下原因引起:java.lang.IllegalArgumentException
- java – 线程“main”中的异常org.hibernate.MappingException:未知实体:
- java.nio.file.InvalidPathException: Illegal char <:>
线程“ main”中的异常java.nio.file.InvalidPathException:索引2处的非法char <:>:(java唯一索引异常)
我必须将类路径资源从一个包复制到另一个。
我的程序是:
public static void main(String[] args) throws IOException, URISyntaxException { ClassLoader classLoader = CopyFileToDirectoryTest.class.getClassLoader();InputStream in = classLoader.getResourceAsStream("com/stackoverflow/main/Movie.class"); URI uri = ClassLoader.getSystemResource("com/stackoverflow/json").toURI(); Path path = Paths.get(uri.getPath(),"Movie.class"); System.out.println(path); long copy = Files.copy(in, path, StandardCopyOption.REPLACE_EXISTING); System.out.println(copy); }
在Files.copy
方法我得到异常:
Exception in thread "main" java.nio.file.InvalidPathException: Illegal char <:> at index 2: /D:/Programs/workspaceEE/HibernateDemo/target/classes/com/stackoverflow/json at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94) at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255) at java.nio.file.Paths.get(Paths.java:84) at com.stackoverflow.main.CopyFileToDirectoryTest.main(CopyFileToDirectoryTest.java:34)
怎么解决呢?
解
public static void main(String[] args) throws IOException, URISyntaxException { ClassLoader classLoader = CopyFileToDirectoryTest.class.getClassLoader(); InputStream in = classLoader.getResourceAsStream("com//stackoverflow//main//Movie.class"); URI uri = ClassLoader.getSystemResource("com//stackoverflow//json").toURI(); String mainPath = Paths.get(uri).toString(); Path path = Paths.get(mainPath, "Movie.class"); System.out.println(path); long copy = Files.copy(in, path, StandardCopyOption.REPLACE_EXISTING); System.out.println(copy); }
此代码可以正确地Movie.class
从软件包复制com/stackoverflow/main
到中com/stackoverflow/json
。
答案1
小编典典问题是,不要Paths.get()
期望从中产生那种价值uri.getPath()
。
解:
URI uri = ClassLoader.getSystemResource("com/stackoverflow/json").toURI();String mainPath = Paths.get(uri).toString();Path path = Paths.get(mainPath ,"Movie.class");
ios – 线程“main”中的异常java.lang.RuntimeException:无效的十六进制字符:v – APNS notnoop
Exception in thread “main” java.lang.RuntimeException: Invalid hex character: v
at com.notnoop.apns.internal.Utilities.charVal(Utilities.java:133)
at com.notnoop.apns.internal.Utilities.decodeHex(Utilities.java:120)
at com.notnoop.apns.EnhancedApnsNotification.(EnhancedApnsNotification.java:72)
at com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:54)
at com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:36)
at com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:45)
at PushServiceTryout.main(PushServiceTryout.java:16)
我有什么不对的想法吗?我能感觉到我快到了!提前致谢.
编辑:这是代码.无论如何,一旦我运行程序,我就会收到错误:s
import com.notnoop.apns.APNS; import com.notnoop.apns.ApnsService; public class PushServiceTryout { public static void main(String[] args) { ApnsService service = APNS.newService() .withCert("c:/fcertificates.p12","1234") .withSandBoxDestination() .build(); String msg = "Hello"; String payload = APNS.newPayload().alertBody(msg).build(); String token = "devicetoken"; service.push(token,payload); } }
解决方法
String token = "devicetoken";
您不能将字符串“devicetoken”用作设备令牌.设备令牌由64个十六进制字符组成(例如:“1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef”).当然,你也不能使用随机十六进制字符串.您应该使用从安装了应用程序的设备发送给您的设备令牌.
您获得String中第一个非十六进制字符的异常,恰好是v.
Java Appium-线程“主”中的异常java.lang.ExceptionInInitializerError-由以下原因引起:java.lang.IllegalArgumentException
如何解决Java Appium-线程“主”中的异常java.lang.ExceptionInInitializerError-由以下原因引起:java.lang.IllegalArgumentException?
我正在用Java学习Appium,并尝试通过安装构造函数应用pageObjects来将驱动程序传递给我的测试用例。当我执行代码时,出现以下错误,我在线搜索并找不到解决方案。请帮助我调查此问题。我是Java编程的新手。
Sep 17,2020 3:29:25 PM io.appium.java_client.remote.AppiumCommandExecutor$1 lambda$0
INFO: Detected dialect: W3C
Exception in thread "main" java.lang.ExceptionInInitializerError
at io.appium.java_client.pagefactory.utils.ProxyFactory.getEnhancedProxy(ProxyFactory.java:52)
at io.appium.java_client.pagefactory.utils.ProxyFactory.getEnhancedProxy(ProxyFactory.java:33)
at io.appium.java_client.pagefactory.AppiumFieldDecorator.proxyForAnElement(AppiumFieldDecorator.java:222)
at io.appium.java_client.pagefactory.AppiumFieldDecorator.access$0(AppiumFieldDecorator.java:220)
at io.appium.java_client.pagefactory.AppiumFieldDecorator$1.proxyForLocator(AppiumFieldDecorator.java:105)
at org.openqa.selenium.support.pagefactory.DefaultFieldDecorator.decorate(DefaultFieldDecorator.java:62)
at io.appium.java_client.pagefactory.AppiumFieldDecorator.decorate(AppiumFieldDecorator.java:160)
at org.openqa.selenium.support.PageFactory.proxyFields(PageFactory.java:113)
at org.openqa.selenium.support.PageFactory.initElements(PageFactory.java:105)
at pageObjects.HomePage.<init>(HomePage.java:18)
at TestCases.Basics.main(Basics.java:22)
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassVisitor.<init>(ClassVisitor.java:79)
at net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:49)
at net.sf.cglib.core.DefaultGeneratorStrategy.getClassVisitor(DefaultGeneratorStrategy.java:30)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
at net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:332)
at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:96)
at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:94)
at net.sf.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54)
at java.util.concurrent.FutureTask.run(UnkNown Source)
at net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
at net.sf.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:119)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:294)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:221)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:174)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:153)
at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:73)
... 11 more
HomePage.java代码:
package pageObjects;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.PageFactory;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.pagefactory.AndroidFindBy;
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
public class HomePage{
//All the objects belongs to one page will be defined in a java class
//1. Call the driver object from testcase to PageObject file
//Concatenate driver
public HomePage(AppiumDriver driver) {
// Todo Auto-generated constructor stub
//AppiumFieldDecorator give the ability to test across iOS and Android platforms
PageFactory.initElements(new AppiumFieldDecorator(driver),this);
}
@AndroidFindBy(xpath="//android.widget.TextView[@text=''Preference'']")
public WebElement preferences;
}
Basics.java代码:
package TestCases;
import java.net.MalformedURLException;
import java.util.concurrent.TimeUnit;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import pageObjects.HomePage;
import pageObjects.PreferencesPage;
public class Basics extends Base{
public static void main(String[] args) throws MalformedURLException {
// Todo Auto-generated method stub
AndroidDriver<AndroidElement> driver = Capabilities();
/*
* //xpath id className,androidUIautomator
* xpath Syntax
* //tagName[@attribute=''value'']
*/
HomePage home = new HomePage(driver);
home.preferences.click();
//PreferencesPage preferences = new PreferencesPage(driver);
driver.findElementByXPath("//android.widget.TextView[@text=''Preference'']").click();
driver.findElementByXPath("//android.widget.TextView[@text=''3. Preference dependencies'']").click();
driver.findElementById("android:id/checkBox").click();
driver.findElementByXPath("(//android.widget.RelativeLayout)[2]").click();
driver.findElementByClassName("android.widget.EditText").sendKeys("hello");
driver.findElementsByClassName("android.widget.Button").get(1).click();
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
java – 线程“main”中的异常org.hibernate.MappingException:未知实体:
执行我的代码后,我得到以下异常
log4j:WARN No appenders Could be found for logger (org.hibernate.cfg.Environment). log4j:WARN Please initialize the log4j system properly. Exception in thread "main" org.hibernate.MappingException: UnkNown entity:info.inetsolv.Emp at org.hibernate.impl.SessionFactoryImpl.getEntityPersister (SessionFactoryImpl.java:628) at org.hibernate.impl.SessionImpl.getEntityPersister (SessionImpl.java:1366) at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:203) at org.hibernate.event.def.AbstractSaveEventListener.getEntityState (AbstractSaveEventListener.java:535) at org.hibernate.event.def.DefaultPersistEventListener.onPersist (DefaultPersistEventListener.java:93) at org.hibernate.event.def.DefaultPersistEventListener.onPersist (DefaultPersistEventListener.java:61) at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:646) at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:620) at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:624) at info.inetsolv.InsertEmprecord.main(InsertEmprecord.java:22)
POJO CLASS
package info.inetsolv; @SuppressWarnings("serial") public class Emp implements java.io.Serializable { // Fields private Integer eno; private String name; private Double salary; // Constructors /** default constructor */ public Emp() { } /** minimal constructor */ public Emp(Integer eno) { this.eno = eno; } /** full constructor */ public Emp(Integer eno,String name,Double salary) { this.eno = eno; this.name = name; this.salary = salary; } // Property accessors public Integer getEno() { return this.eno; } public void setEno(Integer eno) { this.eno = eno; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public Double getSalary() { return this.salary; } public void setSalary(Double salary) { this.salary = salary; }
}
HibernateSessionFactory.java
package info.inetsolv; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.cfg.Configuration; public class HibernateSessionFactory { private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); private static org.hibernate.SessionFactory sessionFactory; private static Configuration configuration = new Configuration(); private static String CONfig_FILE_LOCATION = "/hibernate.cfg.xml"; private static String configFile = CONfig_FILE_LOCATION; static { try { configuration.configure(configFile); sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) { System.err.println("%%%% Error Creating SessionFactory %%%%"); e.printstacktrace(); } } private HibernateSessionFactory() { } public static Session getSession() throws HibernateException { Session session = (Session) threadLocal.get(); if (session == null || !session.isopen()) { if (sessionFactory == null) { rebuildSessionFactory(); } session = (sessionFactory != null) ? sessionFactory.openSession(): null; threadLocal.set(session); } return session; } public static void rebuildSessionFactory() { try { configuration.configure(configFile); sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) { System.err.println("%%%% Error Creating SessionFactory %%%%"); e.printstacktrace(); } } public static void closeSession() throws HibernateException { Session session = (Session) threadLocal.get(); threadLocal.set(null); if (session != null) { session.close(); } } public static org.hibernate.SessionFactory getSessionFactory() { return sessionFactory; } public static void setConfigFile(String configFile) { HibernateSessionFactory.configFile = configFile; sessionFactory = null; } public static Configuration getConfiguration() { return configuration; }
}
客户端程序将记录插入DB
InsertEmprecord.java
package info.inetsolv; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public class InsertEmprecord { public static void main(String[] args) { Configuration cfg = new Configuration(); cfg.configure(); SessionFactory sf = cfg.buildSessionFactory(); Session hsession = sf.openSession(); Transaction tx = hsession.beginTransaction(); Emp e = new Emp(); e.setEno(6); e.setName("six"); e.setSalary(1234d); hsession.persist(e); tx.commit(); hsession.close(); sf.close(); } }
以下是我的hibernate映射文件
Emp.hbm.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="info.inetsolv.Emp" table="EMP" schema="HIB"> <id name="eno" type="java.lang.Integer"> <column name="ENO" precision="5" scale="0" /> <generator/> </id> <property name="name" type="java.lang.String"> <column name="NAME" length="10" /> </property> <property name="salary" type="java.lang.Double"> <column name="SALARY" precision="10" /> </property> </class> </hibernate-mapping>
以下是我的hibernate配置文件
的hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <session-factory> <property name="dialect"> org.hibernate.dialect.Oracle9Dialect </property> <property name="connection.url"> jdbc:oracle:thin:@localhost:1521:xe </property> <property name="connection.username">hib</property> <property name="connection.password">abc</property> <property name="connection.driver_class"> oracle.jdbc.driver.OracleDriver </property> <property name="myeclipse.connection.profile"> my oracle drive </property> <property name="show_sql">true</property> </session-factory> </hibernate-configuration>
解决方法
<mapping resource="info/inetsolv/Emp.hbm.xml"/>
java.nio.file.InvalidPathException: Illegal char <:>
一、报错:
java.nio.file.InvalidPathException: Illegal char <:>
at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
at java.nio.file.Paths.get(Paths.java:84)
二、报错code
String path = Thread.currentThread().getContextClassLoader().getResource("fileName").getFile();
//或者
//Thread.currentThread().getContextClassLoader().getResource("fileName").getPath();
new String(Files.readAllBytes(Paths.get(path)), "utf-8");
原因:windows系统读取的路径,盘符前有根路径"/"符号。
URL url = Thread.currentThread().getContextClassLoader().getResource("fileName");
content = new String(Files.readAllBytes(Paths.get(url.toURI())), "utf-8");
解决思路:获取URL转URI完事,更直接点,getResourceAsStream读取完事。
java.lang.ClassLoader
public InputStream getResourceAsStream(String name) {
URL url = getResource(name);
try {
return url != null ? url.openStream() : null;
} catch (IOException e) {
return null;
}
}
public URL getResource(String name) {
URL url;
if (parent != null) {
url = parent.getResource(name);
} else {
url = getBootstrapResource(name);
}
if (url == null) {
url = findResource(name);
}
return url;
}
java.nio.file.Paths
public static Path get(URI uri) {
String scheme = uri.getScheme();
if (scheme == null)
throw new IllegalArgumentException("Missing scheme");
// check for default provider to avoid loading of installed providers
if (scheme.equalsIgnoreCase("file"))
return FileSystems.getDefault().provider().getPath(uri);
// try to find provider
for (FileSystemProvider provider: FileSystemProvider.installedProviders()) {
if (provider.getScheme().equalsIgnoreCase(scheme)) {
return provider.getPath(uri);
}
}
throw new FileSystemNotFoundException("Provider \"" + scheme + "\" not installed");
}
public static Path get(String first, String... more) {
return FileSystems.getDefault().getPath(first, more);
}
三、Exception
//jar程序读取报错 java -jar
java.nio.file.FileSystemNotFoundException
at com.sun.nio.zipfs.ZipFileSystemProvider.getFileSystem(ZipFileSystemProvider.java:171)
at com.sun.nio.zipfs.ZipFileSystemProvider.getPath(ZipFileSystemProvider.java:157)
at java.nio.file.Paths.get(Paths.java:143)
//jar读取文件报错,找不到文件
//URL url = Thread.currentThread().getContextClassLoader().getResource(filename);
//String content = new String(Files.readAllBytes(Paths.get(url.toURI())), "utf-8");
//直接通过流读取文件内容
public static String getFileContent(String filename) {
InputStream inStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
String content = null;
try {
int size = 1024;
byte[] buffer = new byte[size];
int readLen = 0;
while ((readLen = inStream.read(buffer, 0, size)) != -1) {
bos.write(buffer, 0, readLen);
}
byte[] bytes = bos.toByteArray();
content = new String(bytes);
} catch (IOException e) {
log.error("读取文件内容出错", e);
} finally {
try {
if(inStream != null)
inStream.close();
if(bos != null)
bos.close();
} catch (IOException e) {
;
}
}
return content;
}
获取resource目录的路径
Thread.currentThread().getContextClassLoader().getResource("").getPath()
Maven获取resources的文件路径、读取resources的文件
https://blog.csdn.net/huanghaocs/article/details/83242628
Java项目读取resources资源文件路径那点事
今天的关于线程“ main”中的异常java.nio.file.InvalidPathException:索引2处的非法char <:>:和java唯一索引异常的分享已经结束,谢谢您的关注,如果想了解更多关于ios – 线程“main”中的异常java.lang.RuntimeException:无效的十六进制字符:v – APNS notnoop、Java Appium-线程“主”中的异常java.lang.ExceptionInInitializerError-由以下原因引起:java.lang.IllegalArgumentException、java – 线程“main”中的异常org.hibernate.MappingException:未知实体:、java.nio.file.InvalidPathException: Illegal char <:>的相关知识,请在本站进行查询。
本文标签: